前回、パーセプトロンにバイアスという考え方を導入しました。今回はそれを復習しながら、ディープラーニングの実体に迫りたいと思います。
パーセプトロンで微調整はできる?
パーセプトロンは「複数の入力(に重みを掛け算した)値とバイアスの値を受け取り、1つの出力を返す」という構造です。入力は数値で、出力は0か1のいずれかになります。
パーセプトロンのメリットは、幾重にも繋げられる(層を形成できる)ことです。例えば、2層にすると次のようになります。
このように、パーセプトロンを繋いで層が形成されたものを「ネットワーク」と呼びます。前回説明したのはここまでです。
ここで、機械学習の説明を思い出してみてください。機械学習(教師あり学習)では、教師データが持つ正解と、その時点のモデルが出力する値を見て、パラメータを微調整するのだと説明してきました。機械学習の一種であるディープラーニングにおいて、パラメータに相当するのが重みやバイアスです。
ネットワークは教師データを用いて重みとバイアスの値を調整することで、教師データに潜むパターンやルールを学習していきます。では、上図のようなパーセプトロンを用いたネットワークで、微調整は可能でしょうか。
CやDは、1か0しか出力できませんから、重みやバイアスをちょっと変えただけで1が0になったり、0が1になったりします。つまり、出力が2択しかないために「ちょっとだけここの重みを増やそう」とか、「ここの重みはあちらに比べて、ほんの少しだけ減らしたほうがいいな」という細かな調整が生かせません。どうしたらよいのでしょうか?