03-5211-7750 平日|09:30~18:00

最新の機械学習の代表、ニューラルネットワークとは

検討に役立つお役立ち資料を無料でご利用いただけます

お役立ち資料をダウンロードFREE

ニューラルネットワークがまねした人間の脳

 前回のコラムで機械学習の原則について議論した後は、最新の機械学習の代表といえるニューラルネットワークを紹介します。

 ニューラルネットワークは人間の脳を模倣を試みたもので、70年代後半から80年代初めにかけて非常に人気がありましたが、コンピューティングパワー欠如のために、90年代後半に人気を失ってしまいました。
ところが、最近の計算能力の向上、特にGPUのサポートがニューラルネットワークの人気を復活させ、今日では最も成功した機械学習ツールの1つとなりました。

ニューロンの基本構造

 人間の脳では、通常、ニューロンが特定のタスクをそれぞれ担当していますが、実験では別のタスクを実行するように訓練することができます(例:舌で見る、など)。
 したがって、ニューロンを模倣することで、機械学習プログラムが作られるのです。

単一のニューロンの基本構造は以下の通りです。

●一連の入力線
●入力線の重み(または重要度)の値
●単一の出力線
●重み付けされた入力に基づいて、信号が出力に
 送信されるかどうかを決定するアクティブ化関数

ニューロンの簡単な例

 それぞれの重み -30, +20, +20 の3つの入力線と、5より大きい値を選択するアクティブ化関数を持つニューロンの簡単な例から見てみましょう。
 重み付けされた入力信号の合計が5より大きい場合は、信号が出力線に送られます。



 説明を簡単にするために、ここでは第1入力線を常に送信する(これはいわゆるバイアス入力と呼ばれる)-30という重みを付け、他の2本の入力線についてのみ説明します。
線xとyの両方が送信されている場合、総和 20+20-30=10 となり、5より大きいので、出力線に1が送信されます。しかし、入力線xまたはyのいずれかが送信しない場合、20-30=-10 のいずれかが得られ、情報は送信されません。数学的にはこれは数学論理学のゲートと記述できるので、ニューロンは「xかつy」を計算します。

 この単純な例では、適切な関数を計算するための重みを用意していますが、実際にこれらの重みは未知であり、ニューロン(ニューラルネットワーク)の学習によって学習されます。
 乱数で重みを初期化した後、実際の学習計算は、トレーニングデータ全体に対して以下のステップを繰り返すことからなります。

●現在の重みで学習入力の出力値を計算する(フォーワードプロパゲーション)
●期待される出力と実際の出力との間の誤差を計算する
●この誤差を使用して重みを調整する(バックプロパゲーション)

ディープラーニングの、「ディープ」が意味する「隠れ層」

 ニューラルネットワークでは、数ニューロンを層に結合して、入力から複素関数を計算します。特に、隠れ層の数が増えるとともに、計算できることが激増します。ディープラーニングの「ディープ」という意味は、この隠れ層の数が多いということなのです。



 一つのニューロンだけでも驚くほど多くのことができます。このリンクをクリックすると、シングルニューロンで2種類の点の群れをわけるニューラルネットワークのアニメーションを見ることができます。



参考文献:
ニューラルネットワーク(ウィキペディア)
Tensorflow Playground (英語)

■関連ページ
【アクセリアのサービス一覧】
 ・サービスNAVI

Norbert Preining

アクセリア株式会社 研究開発部社員
北陸先端科学技術大学院大学ソフトウェア検証研究センター 研究員
ウィーン工科大学 研究員
Debian開発者
TeX User Group (取締役会員)、Kurt Godel Society (取締役会員)
ACM, ACM SigLog, 日本数式処理学会、ドイツ数学論理学会
Contact usお問い合わせ

サービスにご興味をお持ちの方は
お気軽にお問い合わせください。

Webからお問い合わせ

お問い合わせ

お電話からお問い合わせ

03-5211-7750

平日09:30 〜 18:00

Download資料ダウンロード

製品紹介やお役立ち資料を無料でご活用いただけます。

Magazineメルマガ登録

最新の製品情報などタイムリーな情報を配信しています。

Free Service

PageSpeed Insights シミュレータ

CDNによるコンテンツの最適化を行った場合のPageSpeed Insightsのスコアをシミュレートしてレポートします。