AI 機械学習の基礎を学んでみましょう

機械学習の理論から実装、実使用までの過程を体験してみようとトライしましたが、わかりやすく、初心者にもわかる解説書に出会えず興味も薄れ、ここしばらく遠ざかってました。最近、少し理解できそうだと思える本を見つけ少し学習しなおしてみましたので紹介します。あくまでも概要のまとめなので、実践するには、まだまだハードルがありそうです。例題として入門編でよくでてくる手書き数字0〜9までの画像認識を中心にまとめました。

準備する道具 

プログラムを作るためaiに適したPythonや必要なパッケージを揃えるためanaconda3(2023現在)をインストールします。

windows startから anacondaの Jupyter Notebookを開きます。

これでプログラムが書ける環境になります 入力INと出力OUTを繰り返し実行していきます。

start anaconda anaconda shellを 起動し

pip install tensorflow==2.7.0を実行しtensrflowをインストールします。

pythonでは特に配列の扱いやグラフ描画について学習しておきます。

数学の知識としては行列やベクトル演算、微分や偏微分、関数の中の関数を微分するときに必要な連鎖率、出力誤差を数字化する二乗平均誤差、対数、指数関数、重み(影響度)や活性化関数のシグモイド関数を通すニューロンモデル、出力を割合で示すソフトマックス、微分と勾配計算、誤差最適化へのアプローチの様子などを調べておきます。

誤差逆伝搬法による出力誤差を使っての、各中間階層の重み更新の様子を理解します。

重みには乱数を使いますので数字を決める必要はありません。最適化の過程で正解に近い数字に自動的に更新されていきます。

更新の過程は出力誤差を入力としてニューロンネットワークの入力側に向かって活性化関数と重み入力総和を挟む前後の数字を更新しながら進んでいきます。

そのため1組の行進の様子だけを理解しておけば、これを繰り返すだけなので、混乱することなく計算されていく様子が理解できると思います。

それでは0から9までの手書き文字を当てる問題に進みますが、実際例を体感するため自前でコツコツ一から作るのではなくgoogleなどが開発したライブラリーのtensorflow kerasなどを使用します。 dataはtensorflow-mnistからimportできます。

手書き数字の入力画像を入力として畳み込み層、プーリング層、畳み込み層などを介在し10個の全結合出力を行い教師データ10個との差を逆伝搬誤差計算を繰り返し次第に正解に近づけます。

プログラムは更新の度に正解率を表示しながら15分程度で完了し、参考本では100%正解率が得られました。

AIの動きを体感することで、自動運転の画像処理学習や、顔認識、果物の熟れ具合など様々な分野で実用されていることが理解できそうです。生成AIなどが出現しましたが、将来に向けてのロボットに支配されない危険と隣り合わせの時代の入り口に立っていることを理解し、文化、健康、共にある友好、助け合い、平和、生きがいを実感できる方向へ発展していければいいですね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です