ディープラーニングを始めてみる 9
前回
参考書はこれ
前回はMNISTデータセットをやりました。
では、このデータでどのように文字認識をしているのかについてやってみます。
基本的にコンピュータで画像データはこのようにドットを縦と横に敷き詰めて表されます。それぞれのドットが、色や濃さのデータを持っています。
この図だと5×5の25ドットですが、MNISTのデータは28×28の784ドットです。
このデータは1なので、真ん中の縦一直線が白くなっています。
そしてこのデータを行ごと区切り、一直線に並べ直します。
この一直線になったデータをニューラルネットワークに入力します。
画像だと入力層が省略されていますが、実際はドットの数、この図では25、MNISTのデータでやる場合は784の入力層のニューロンがあります。
こうして入力層のニューロンに色の濃度等の情報を入力してやることで、出力層に出力が出ます。
こうして他の画像も5行×5列のドットを1行×25列に変更してニューラルネットワークに入力することで答えを得ることができます。
ここでバッチ処理というテクニックがあります。
5行×5列のドットを1行×25列に直した後、3つの画像のドットをまとめて3行×25列にしていっぺんにニューラルネットワークに入力することができます。
行の向きを考えると3行×25列をニューラルネットワークに入力するイメージは下のようになります。
この答えも行列でいっぺんに出力されます。
このバッチ処理の利点は、ニューラルネットワークに一行ずつ入力するよりも動作を高速化できることです。
コンピューターは行列を取り扱うとき、行列専用の高速計算システムを使うので、このように入力を一度に行列で与えると、一行ずつ入力するよりも高速に処理することができます。