前回、パーセプトロンにバイアスという考え方を導入しました。今回はそれを復習しながら、ディープラーニングの実体に迫りたいと思います。

パーセプトロンで微調整はできる?

パーセプトロンは「複数の入力(に重みを掛け算した)値とバイアスの値を受け取り、1つの出力を返す」という構造です。入力は数値で、出力は0か1のいずれかになります。

パーセプトロンの構造

パーセプトロンのメリットは、幾重にも繋げられる(層を形成できる)ことです。例えば、2層にすると次のようになります。

2層のネットワーク。文献によってはこの図の0層目を1層目と数え、3層としているものもある

このように、パーセプトロンを繋いで層が形成されたものを「ネットワーク」と呼びます。前回説明したのはここまでです。

ここで、機械学習の説明を思い出してみてください。機械学習(教師あり学習)では、教師データが持つ正解と、その時点のモデルが出力する値を見て、パラメータを微調整するのだと説明してきました。機械学習の一種であるディープラーニングにおいて、パラメータに相当するのが重みやバイアスです。

ネットワークは教師データを用いて重みとバイアスの値を調整することで、教師データに潜むパターンやルールを学習していきます。では、上図のようなパーセプトロンを用いたネットワークで、微調整は可能でしょうか。

CやDは、1か0しか出力できませんから、重みやバイアスをちょっと変えただけで1が0になったり、0が1になったりします。つまり、出力が2択しかないために「ちょっとだけここの重みを増やそう」とか、「ここの重みはあちらに比べて、ほんの少しだけ減らしたほうがいいな」という細かな調整が生かせません。どうしたらよいのでしょうか?

「活性化関数」を使おう

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら