エンジニアの副業は週1からでも可能?副業の例や探し方も解説
- ITエンジニア
- 副業
最近話題の「機械学習」と「ニューラルネットワーク」。実際のビジネスに活用されることも増え、いよいよ本格的な普及期が訪れています。
しかし、このふたつの言葉にはどんな違いがあるのか、よくわからない気がしませんか?
今回は「ニューラルネットワーク」という言葉について、機械学習との違いを踏まえつつご紹介します。
目次
機械学習について調べてみると「たとえばニューラルネットワークが代表例です」と解説されており、一方でニューラルネットワークについて調べると「それは機械学習の一種で、以下云々」なんて説明がされていたり……。
確かにここに、間違いはありません。しかし、どうもしっくりとこない。「犬は哺乳類に含まれる生き物です」「哺乳類とは犬等を含む分類です」などと説明されても、それで理解できたことにはなりませんよね。
少し掘り下げた紹介では、以下のような説明をよく見かけます。
「人工知能 ⊃ 機械学習 ⊃ ニューラルネットワーク ⊃ 深層学習」
※ A ⊃ B「BはAに含まれる」の意。「動物 ⊃ 哺乳類 ⊃ 犬 ⊃ 柴犬」など
しかしこうした説明を読んでも、どこか釈然としないという方も多いでしょう。
ニューラルネットワークについて「そうか!」となれる解説は、管見の限りでは見たことがありません。ならば「自分で書いてみよう!」というわけで、今回はこの難題に挑んでみたいと思います。
ニューラルネットワークとは「人間の脳内にある神経細胞(ニューロン)と、そのつながり(神経回路網)を数理的なモデルで表現したもの」です。
動物の脳神経は、環境に存在する物質やエネルギーが感覚器官によってとらえられ信号に変換されたものが、シナプスとニューロンによって「入力ノード→中間ノード→出力ノード」というふうに伝わるよう作られています。そんな脳神経の仕組みを極めて単純化したのが、ニューラルネットワークと呼ばれるモデルです。
ニューラルネットワークは、「人間を超えた」とか「脳の働きを再現」なんて言われますが、実態としては以下のようなものです。
ニューラルネットワークは、常に機械学習とセットで語られます。しかしこれらは「全然違うものだ」とも言えますし、「ほぼ同じものだ」と言えなくもありません。
「違い」がどこにあるかは明快です。
ニューラルネットワークのモデルで必ずしも機械学習をさせる必然性はありませんし、機械学習においてニューラルネットワーク以外のモデルを援用することもあります。
一方で「ほぼ同じものである」ともいえるのは、「ニューラルネットワークこそ、もっとも機械学習らしいモデルである」という面があるのです。
そもそも機械学習とは、世の中の特定の事象に関するデータを解析し、その結果から傾向を学習して、判断や予測を行うためのアルゴリズムを使う手法全般を指した言葉です。そんな機械学習の有名な定義に「明示的にプログラムしなくても学習する能力をコンピュータに与える研究分野」というものがあります。
しかしこの「明示的にプログラムする」という表現がくせ者です。どこからどこまでを「明示的にプログラム」しなくても良いのでしょうか。そしてなにをもって「学習」と呼ぶのでしょうか。この最終的な判断は、主観的なものになってしまうのです。例えば「遺伝的アルゴリズム」と呼ばれる計算手法が昔からAI研究の分野で存在しますが、これを機械学習に含めるかどうかは意見が分かれます。
ニューラルネットワークはその学習がうまくいく理由が「いまだに誰もうまく説明できない」ことが最大の特徴でもあります。その意味では、さまざまな機械学習手法のなかで、ニューラルネットワークこそがまさしく機械学習と呼ぶにふさわしいとも言えるでしょう。
機械学習について、詳しくは以下の記事をご覧ください▼
機械学習にはどんな種類がある?「活用」と「誤解」が進む機械学習の世界
Workship MAGAZINE
ニューラルネットワークが注目される理由は、大きく3つあります。
デカルト以来、理性をもった人間の思考とは、大別すれば「演繹」「帰納」のどちらかであるといった考えが知識人の思考のベースにありました。
演繹:犬は動物である → うちのポチは犬である → うちのポチは動物である(論理を数珠繋ぎにして結論を出す)
帰納:昨日ポチはドッグフードをたべた + 今日ポチはドッグフードを食べた → ポチはドッグフードを食べる(多くの事実から結論を出す)
コンピュータが発明された直後から、人類は人工知能の実現を夢見てきましたが、その試みは「演繹的なアプローチ」で開始されました。
しかし人間は文章や画像を見聞きした際に、その「意味」を即座に理解して思考をすることができますが、これを機械に代行させるのは難しかったのです。一方で徐々にわかってきたのが、人間の知的行動における解析とは、データにおける有意な規則性=パターンを発見することだ、ということでした(帰納的なアプローチ)。知性においては「パターンの発見」は不可欠であり、そのための手法として研究されたのがニューラルネットワークなのです。
思考そのものを記号的に処理するのではなく、思考を生み出す基盤を模倣するという発想の転換の結果、「なぜかは説明できないけど正しいアウトプットをする機械」が生まれたのでした。まさしくコロンブスの卵的な発想です。
またこれが単なる理論だけでに止まらず、実証が続いたのも大きなエポックとなりました。例えば以下のようなことをニューラルネットワークは可能にしました。
現代はスマートフォンだけでなく、スマート家電やスマートホーム等、ソフトウェアだけでなくハードウェアも含めて、人間が機械とさまざまな接点を持つ時代です。そのためニューラルネットワークの用途開発や応用研究が急ピッチで進められており、ビジネスチャンスがまだまだ眠っているといえます。それこそがニューラルネットワークが注目される大きな理由のひとつなのです。
ちなみに筆者は2005年頃、大学の工学部で人工知能系の研究室に所属していましたが、当時は「そんな、ニューラルネットワークなんて……」という、若干(かなり?)冷ややかな視線を感じてました。それが今や、世界的に注目を浴びる存在に。ずいぶん不思議に感じています。
ニューラルネットワークが得意とするのは、人間が話す言葉や見る景色などを、コンピューター用に翻訳することです。
「たくさん犬の画像を見せたら、コンピューターが犬を認識できるようになる」。もちろんそれはそうなのですが、もう少し専門的にこれを説明させていただきます。
ここで知っておきたいのが「分類(Classification)」と「回帰(Regression)」です。どちらもデータに法則性を見つけ、関数近似を行うという点は共通しています。先程述べた「パターンの発見」というやつですね。
分類問題の例として、たとえば犬と猫の画像を見分けられるように、分布データをどこかで線引きするものがあります。写っているものを判別するだけでなく、たとえば異常データと正常データを見分ける、といった工業的な用途にも応用できます。
一方で回帰問題の例として、一定期間後の株価予測などが該当します。イメージ的には「データの一つひとつの値を点としてプロットしたグラフ上で、それに近い直線を引く」といったような感じです。機械学習サービスを提供している会社に勤務する友人によると、最近ではSPI等の試験結果と入社後の成果の相関を、ニューラルネットワークを用いて洗い出し、入社判定の参考にすることがあるそうです。ただし、これらの相関関係はニューラルネットワークに限らず、他の機械学習的手法を用いても導くことができます。
では、ニューラルネットワークでないとできないものは、どんなことでしょうか。
例えば「誤差伝搬」は、まさしくニューラルネットワークならではの得意分野と呼べるかもしれません。
「誤差伝播」とは、入力層から出力層に向けた情報の流れが順方向(順伝搬)であるのに対し、誤差(見込み違い)を出力側から順に遡る方法です。
たとえば会社で作ったプロダクトに品質不良が発覚した際には、原因を遡って分析し、悪かったところを改善するでしょう。人間は、結果から逆算していく思考方法を得意としています。それと同じような原理で、誤差逆伝播を繰り返すことでニューラルネットワークは賢くなっていきます。
さて、色々とご紹介してきましたが、多少なりとも「そうか」「なるほど」と思っていただけたでしょうか。
整理するとニューラルネットワークは、あくまで数理的なモデルです。生き物の脳神経に似せているものですが、あくまで「似て非なるもの」です。コンピュータのなかにニューラルネットワークを作ったからといって、人間の脳と同じように機能するわけではありません。
現在は個別の用途やシーンに応じて、個別の開発がされています。それでも、ほんの十数年前には考えられなかったような画期的な成果が次々と生まれています。
ニューラルネットワーク分野の発展は、今後さらに加速していくでしょう。表面的なイメージだけでなく、話題の深層をしっかりおさえていきたいものです。
こちらもおすすめ!▼
初心者におすすめの機械学習向け言語は? 実際に触ってみた
Workship MAGAZINE