最新の機械学習の代表、ニューラルネットワークとは
ニューラルネットワークがまねした人間の脳
ニューラルネットワークは人間の脳を模倣を試みたもので、70年代後半から80年代初めにかけて非常に人気がありましたが、コンピューティングパワー欠如のために、90年代後半に人気を失ってしまいました。
ところが、最近の計算能力の向上、特にGPUのサポートがニューラルネットワークの人気を復活させ、今日では最も成功した機械学習ツールの1つとなりました。
ニューロンの基本構造
したがって、ニューロンを模倣することで、機械学習プログラムが作られるのです。
単一のニューロンの基本構造は以下の通りです。
●一連の入力線
●入力線の重み(または重要度)の値
●単一の出力線
●重み付けされた入力に基づいて、信号が出力に
送信されるかどうかを決定するアクティブ化関数
ニューロンの簡単な例
重み付けされた入力信号の合計が5より大きい場合は、信号が出力線に送られます。
説明を簡単にするために、ここでは第1入力線を常に送信する(これはいわゆるバイアス入力と呼ばれる)-30という重みを付け、他の2本の入力線についてのみ説明します。
線xとyの両方が送信されている場合、総和 20+20-30=10 となり、5より大きいので、出力線に1が送信されます。しかし、入力線xまたはyのいずれかが送信しない場合、20-30=-10 のいずれかが得られ、情報は送信されません。数学的にはこれは数学論理学のゲートと記述できるので、ニューロンは「xかつy」を計算します。
この単純な例では、適切な関数を計算するための重みを用意していますが、実際にこれらの重みは未知であり、ニューロン(ニューラルネットワーク)の学習によって学習されます。
乱数で重みを初期化した後、実際の学習計算は、トレーニングデータ全体に対して以下のステップを繰り返すことからなります。
●現在の重みで学習入力の出力値を計算する(フォーワードプロパゲーション)
●期待される出力と実際の出力との間の誤差を計算する
●この誤差を使用して重みを調整する(バックプロパゲーション)
ディープラーニングの、「ディープ」が意味する「隠れ層」
一つのニューロンだけでも驚くほど多くのことができます。このリンクをクリックすると、シングルニューロンで2種類の点の群れをわけるニューラルネットワークのアニメーションを見ることができます。
参考文献:
●ニューラルネットワーク(ウィキペディア)
●Tensorflow Playground (英語)
■関連ページ
【アクセリアのサービス一覧】
・サービスNAVI
サービスにご興味をお持ちの方は
お気軽にお問い合わせください。
Webからお問い合わせ
お問い合わせお電話からお問い合わせ
平日09:30 〜 18:00
Free Service