本作品は、「機械学習の「学習」の可視化 CNN編」です。
本電子工作の機械学習のネットワークには、畳み込みニューラルネットワーク(CNN:Convolutional neural network)を使っています。そのCNNの構造は、入力層、畳み込み層、プーリング層、全結合の出力層から構成されています。入力層は、6×6の36個、畳み込み層は、3×3のフィルタ(カーネル)3枚、プーリング層は、2×2のMAXプーリング、そして3個の全結合の出力層です。出力層の活性化関数にはシグモイド関数を使っています。損失関数は2乗誤差です。学習には、誤差逆伝搬法を使い、アルゴリズムは、勾配降下法(学習係数は、0.2に設定)で、エポック数(更新回数)は35回です。
前半の動画のように、手書き文字である「/」と「\」と「?」を各10個、教師データとともに入力します。合計30個の手書き文字の入力が完了すると「学習」モードに入ります。このとき、入力パターンやパラメータ(フィルタ、フィルタのバイアス、全結合層の重みとバイアス、損失誤差の値)をパソコンに通信で送ります。パソコン側は、通信フリーソフトTeraTermで受けています。
次に、動画のように、電子工作からの入力パターンやパラメータをエクセルで表示させます。損失誤差のグラフから「学習」が進んでいることがわかります。また、フィルタの係数から、フィルタ1は、「\」を、フィルタ2は、「/」の特徴を抽出していることが読み取れます。さらに、全結合の重みから、1番目の分類は、フィルタ2のからのプーリング層の値を重視しており、2番目の分類は、フィルタ1からのプーリング層からの値を重視(フィルタ2、フィルタ3からも弱く影響を受けている)しており、3番目の分類は、フィルタ1とフィルタ3からのプーリング層の値を強く影響を受けていることがわかります。このように、本作品を使うことでCNNの「学習」の様子を分析することができます。
後半の動画では、学習が終了し、「推論」モードに入ります。「/」と「\」と「?」の手書き文字の分類を行います。動画からこのような単純なパターンは、概ね分類できることがわかります。
機械学習に興味がある人全て
本作品で、様々な条件の機械学習を繰り返し試すことができるので、機械学習が身近なものになります。
テラオカ電子:
孫と祖父母が一緒に楽しめる電子ゲームを作っています。 高校生や高齢者介護サービスセンターの方のアイディアも取り入れています。
この作品を共有