情報セキュリティやIT運用、テクノロジーに関する最新の動向、
弊社商品の情報などをご紹介するサイト

Sky株式会社

公開日2024.10.28

ニューラルネットワークとは? 仕組み、種類、学習方法を解説

著者:Sky株式会社

ニューラルネットワークとは? 仕組み、種類、学習方法を解説

ニューラルネットワークは、人間の脳の働きを模倣した機械学習モデルの一つで、AI(人工知能)にとって欠かせない重要な技術です。複雑なデータの関係性を捉えることができ、例えば画像認識や音声認識、自然言語処理など、多岐にわたる分野で活用されています。今後ますます重要性が増すといわれているAI技術。それを効果的に活用するためにも、ニューラルネットワークの仕組みや役割を理解しておくことはプラスになります。この記事では、ニューラルネットワークの概要や仕組み、種類、具体的な活用例などを紹介します。

ニューラルネットワークとは何か?

ニューラルネットワークは、人間の脳の働きを模倣した機械学習モデルの一つで、脳内の神経回路網を人工ニューロン(ノード)とシナプスという数式的なモデルで表現したものです。入力層、隠れ層(中間層)、出力層から構成され、各層のニューロンがシナプスによって互いに接続され、ネットワークを構成します。下図では隠れ層が1層のみですが、より表現力を高めるために隠れ層を多層化したものをディープニューラルネットワーク(DNN)といい、これを用いて精度向上を図る学習をディープラーニング(深層学習)といいます。

ニューラルネットワークの活用例

ニューラルネットワークは、複雑なデータの関係性を捉えることができ、例えば画像認識や音声認識、自然言語処理など、多岐にわたる分野で活用されています。例えば、画像認識を用いた手書き文字認識では、入力された画像をピクセル単位で解析し、各ピクセルの情報を基に文字を特定します。同様に、音声認識は音声データから言葉やフレーズを特定します。こうした技術を応用し、スマートフォンの音声アシスタントや自動翻訳システムなどが実現されており、日常生活や業務効率化に生かされています。さらに、自動車の自動運転や医用画像を用いた画像診断など、より高度な技術が求められる領域でも活用が進んでいます。

ニューラルネットワークの仕組み

ニューラルネットワークは、入力されたデータをどのような流れで学習するのでしょうか。また、さらに隠れ層が多層化されたディープニューラルネットワークとは、どのようなものなのでしょうか。それぞれの概要を紹介します。

基本的なニューラルネットワーク(NN)の仕組み

冒頭で説明したとおり、基本的なニューラルネットワーク(NN)は、入力層、隠れ層、出力層という3種類の層で構成されます。入力層はデータを受け取る役割を担い、隠れ層でデータの特徴量を抽出し、出力層が最終的な予測や分類の結果を出力します。各層のニューロン同士のつながり(シナプス)は、前層のニューロンの値が次のニューロンにとってどのくらい重要なのかを表す「重み」を持っています。さらにニューラルネットワーク自身が持つ「バイアス」という調整パラメータによって調整が加えられ、そして次のニューロンへどのように出力するかを決める「活性化関数」によって変換されます。

こうして入力層から隠れ層、出力層へと、リレーのようにつないでいき最終的な結果を導き出します。こうした計算によって複雑なデータのパターンを学習し、予測や分類を行います。例えば手書き文字認識の場合、入力された画像データのピクセル情報が入力層に渡され、隠れ層でデータの特徴量が抽出され、出力層で文字を特定するといった流れになります。

ニューラルネットワークは、データの入力と出力を繰り返しながら重みなどを最適化することで学習。重みのつけ方などの微調整を行いながらモデルの精度を向上させていくことで、最適な結果を出力できるようになります。

ディープニューラルネットワーク(DNN)の仕組み

ディープニューラルネットワーク(DNN)とは、ニューラルネットワーク(NN)の入力層、隠れ層、出力層の3層のうち、隠れ層を多層化して4層以上で構成したものです。現在はこちらを用いることが一般的になっており、中には100層以上の隠れ層を持つ複雑なモデルも存在します。例えば、入力した画像に映る動物の種類を特定するような場合、浅い層で画像に写った動物の色や形を認識し、次の層で過去データから類似した動物がいないかを検索します。そして出力層で、画像データに含まれる動物が何か結論づけます。なお、過去データから類似データを探す際にも機械学習が行われるので、多くの学習データを蓄積すれば、それだけニューラルネットワークも多く張り巡らされるようになり、精度向上が期待できます。

このように、隠れ層が多くなることで複雑な情報処理が可能になりますが、隠れ層が多いほど正確なモデルとなるわけではなく、不要な特徴を誤って学習することで精度の低下を招くことも珍しくないため、適切なモデル設計が求められます。

ニューラルネットワークの学習方法

ニューラルネットワークにおける学習の目的は、出力層で目的に合った結果を得ることです。目的に合った結果を出力させるため、機械学習における学習方法にはいくつかの種類があります。ここでは代表的な「教師なし学習」と「教師あり学習」の違いを紹介します。

教師あり学習

教師あり学習とは、人が事前に準備した正解データに基づいて学習させる方法です。トレーニングデータや教師データと呼ばれるラベルを付与したデータを使って学習させます。例えば、「犬」や「猫」とラベリングされている画像を大量に取り込むことで、犬や猫の特徴を学習します。そして、新しい画像が示されたときに、それまでに学習したデータに基づいて写っているものが犬なのか猫なのかを認識・予測するというものです。この教師あり学習は、過去のデータに基づいて結果を予測する、需要予測や気象分析、音声認識といった分野で活用されています。

教師なし学習

一方、教師なし学習ではラベリングされた正解データがなく、入力されたデータを利用して正解を導き出します。入力データそのものが持つ特徴を分析するので、頻出パターンの発見、分類やデータの簡略化といった作業を中心に行います。代表的な例として「クラスタリング」と「次元削減」が挙げられます。クラスタリングは、データの特徴ごとにグルーピングを行うことです。次元削減は、自己符号化器の項目で説明したのと同様にニューロン(次元)を減らすこと、データの特徴を決定づける本質的な情報だけを抽出することができます。教師なし学習は、自動運転技術の画像認識や外観検査における異常検知といった分野で活用されています。

機械学習とディープラーニング(深層学習)の違い

機械学習は、人による明示的な指示(プログラム)によるのではなく、AIが自律的に学習を行うための技術です。大量のデータを繰り返し取り組んでパターンや規則性を見つけ、分析に生かせるように学習することです。ディープラーニングは、機械学習をさらに発展させたもので、今回紹介したニューラルネットワークをベースとして、人の認識過程と似たプロセスで答えを導き出します。

例えば、機械に犬を認識させる際、画像の耳の形や輪郭など対象の特徴に基づいて、過去データと突き合わせて判断します。しかし人の場合は、全体を認識してから細部を確認したり、細部を見てから全体を把握したりするというように階層的なプロセスを経て結論を出します。同じようにディープラーニングは、データ分析を多層的に行います。さらにどこに着目して特徴を見つけるのかということ自体を、AI自身が学習して精度を向上させます。

例えば、一般的な機械学習では人が意図的に「色を比較する」というふうに指示しますが、ディープラーニングではデータの特徴がどこに表れるのかという点も学習し、そして色を見分ける方法についても自ら探し出します。そのため、より自律的な学習が可能になります。

ニューラルネットワークの種類

ニューラルネットワークには、前述のディープニューラルネットワーク(DNN)意外にも、いくつかの種類があります。ここでは代表的なニューラルネットワークの特徴や仕組みを紹介します。

畳み込みニューラルネットワーク(CNN)

畳み込みニューラルネットワーク(CNN)はディープニューラルネットワークの一種で、特に画像や動画の情報処理に優れています。主に画像をカテゴリごとに分類する「一般物体認識」を得意とし、「畳み込み層」や「プーリング層」といった特別な層を持つことで、画像の空間的な特徴量を自動的に抽出し、効率的に学習できます。

一般的なニューラルネットワークの場合、すべてのニューロンに網羅的にシナプスをつなぎます(全結合)が、畳み込みニューラルネットワーク場合は、畳み込み層においてニューロン同士の結合を制限しつつ、畳み込み演算によりエッジなどの特徴を抽出します。さらに「プーリング層」で、特に重要な情報のみを抽出して圧縮し、ノイズなどを除去して特徴を強調するといった処理を行います。その上で、「全結合層」と呼ばれる従来のニューラルネットワークと同様の構造によって、分類や予測といった処理を行います。

再帰型ニューラルネットワーク(RNN)

再帰型ニューラルネットワーク (RNN)は、自然言語処理などで注目されている時系列データの処理に長けたニューラルネットワークです。例えば、文章の中で次の言葉を予測するという場合、その前の言葉が何だったのかを記憶しておく必要があります。これを可能にするのが「以前に計算された情報を覚える」という機能です。

複数の隠れ層を持つのではなく、入力層、隠れ層、出力層の3層で構成されており、隠れ層の演算結果を出力層に出力するときに、その演算結果を隠れ層にも戻して再演算を行います。隠れ層からの出力を再び隠れ層に代入するという作業を繰り返す(再帰)ことで、同じ隠れ層を何度も使用することから「現在は何回目の代入なのか」を明確にできるよう「時間軸(状態軸)」の概念が加わります。これにより、文章の文字列のように連続したデータや、株価情報のような時系列データのパターンが学習できます。

敵対的生成ネットワーク(GAN)

敵対的生成ネットワーク(GAN)は、用意されたデータを基に学習し、擬似的なデータを生成するためのモデルです。偽物のデータを生成する「生成器(Generator)」と、入力されたデータが本物のデータなのか、生成器が作った偽物のデータなのかを判別する「識別器(Discriminator)」という異なる2つのAIモデル使って学習します。生成器は識別器を騙せるようにより精巧なデータを生成し、識別器は生成器によって作られたデータを見破ろうと識別精度を高めながら競い合います。この競争によって、生成器はどんどんと精度を高めることができ、限りなくリアルなデータが生成できるようになります。

GANを使って新しい絵を生成する場合、最初は生成器がランダムに描きますが、識別器は即座に偽物と判断します。生成器はそのフィードバックを受けて、より本物に近い絵を描こうとする。このプロセスを繰り返すことで、より本物に近い絵が描けるようになります。この敵対的生成ネットワークは、画像の生成だけではなく、音声合成やテキスト生成など幅広い分野で応用されています。

自己符号化器(オートエンコーダ)

自己符号化器(オートエンコーダ)とは、入力された情報を符号化・圧縮して(エンコード)いったん別のものに変換し、さらにそれを元の形に戻して(デコード)出力するというモデルです。入力と出力がまったく同じものになるため、一見すると無駄な処理のように見えるこの手法が、なぜ必要なのでしょうか。

前述のようにニューラルネットワークは、層を重ねることにより複雑な処理を可能にします。しかし、実際には層を重ねすぎることで逆に精度が落ちる「勾配消失」という課題があります。また学習用のトレーニングデータに適合しすぎてしまい汎用性が失われる「過学習」という課題もあります。自己符号化器はこうした課題を解消します。

自己符号化器を単純化したのが下図です。この例では「3」を入力して「3」を出力させます。このときに注目したいのが隠れ層のニューロンの数(黄丸)です。入力層と出力層よりもニューロンが少ないため、何らかの方法で情報を減らす(符号化・圧縮する)必要があります。情報を減らしても入力と同じ「3」を出力できるようにするには、「どの情報ならそぎ落としても問題ないか」「どの情報が必須なのか」という重要な特徴量を見極める必要があります。こうした仕組みを、多層ニューラルネットワークの各層それぞれに適用して、事前学習を行うことで誤差を減らし、学習効率を大幅に改善するのが自己符号化器です。また、この仕組みは入力データが正常なのか異常なのかを判断する「異常検知」にも応用でき、例えば画像認識技術を用いた外観検査などで活用されています。

ニューラルネットワークの具体的な用途

ニューラルネットワークは、医用画像診断や行動分析によるマーケティング、財務予測、エネルギー需要予測など幅広い分野で活用が進んでいます。ここでは、特に重要とされている用途を3つ紹介します。

1:コンピュータービジョン

コンピュータービジョンは、画像や映像から必要な情報を抽出して理解できるようにするための技術です。ニューラルネットワークを用いて画像認識を行うことで、画像や映像のデータを解析して人物や物体などを検出できます。身近なところでは、スマートフォンのカメラで個人の顔を識別してログイン認証を行う顔認証機能。また、自動車に設置されたカメラで他車両や歩行者を検出したり、車線を認識したりといった運転支援機能などに活用されています。さらに、医療分野ではCTやMRIなどの医用画像を解析して画像診断を支援し、疾患の見落とし防止や読影時間の削減などに役立てられています。

2:自然言語処理(NLP)

自然言語処理(NLP)は、人が使う言語の文脈を理解したり、文章を生成したりする技術です。ニューラルネットワークは、この分野でも重要な役割を担っており、外国語の自動翻訳やニュース記事の要約などに用いられています。また、製品やサービスのカスタマーサポートで採用が増えているチャットボットでは、ユーザーが入力した自由記述のテキストから意味を正しく理解するために使用されており、それにより的確な回答ができる仕組みが作られています。また、ソーシャルメディア分析やマーケットリサーチの分野では、レビューなどの投稿内容から感情を分析したり、ユーザーの意見やトレンドを把握したりするために、大量のテキストデータを解析するという活用も増えています。

3:レコメンデーションエンジン

ニューラルネットワークは、一定のルールや行動データに基づいてユーザーに商品やコンテンツ(アイテム)を提示する、レコメンデーションエンジンでも活用されています。例えば、ユーザーの過去の行動データ(クリック操作や閲覧ページ、購入履歴など)を分析して行動予測に生かすとともに、取り扱っているアイテムの特徴を把握し、各アイテムの類似性を解析します。こうすることで、ユーザーの行動分析結果と興味を持ったアイテムとの類似性などを複合的に掛け合わせて、ユーザーが次に興味を持つ可能性が高いアイテムを提示することができるようになります。

まと

ニューラルネットワークは、人間の脳の働きを模倣した機械学習モデルの一つで、画像認識や音声認識、自然言語処理など、多岐にわたる分野で活用されています。ニューラルネットワークは複雑なデータを学習することで、予測や分類に活用することができ、医療、金融、製造業などさまざまな業界における業務効率化やコスト削減、競争力強化に役立てられています。今後も、ニューラルネットワークは技術革新の中核を担い、情報社会の発展に寄与と考えられています。

関連コラム