
ディープラーニングとは?数式を用いずにその仕組みを解説!
2024/12/18
ディープラーニングは、人工知能(AI)の一分野であり、深層ニューラルネットワーク(Deep Neural Network: DNN)を用いた機械学習手法です。この技術は、大規模なデータセットを自動的に処理し、特徴を抽出する能力に優れています。特に近年では、学習した内容から物事を判断するだけでなく、人間との自然な対話や、表現豊かに画像生成を行うなど、より日常に近いシーンでの活用も多くなってきており、今後の発展も期待される分野となっています。
しかし、実際に中身がどうなっているのかを理解しようとすると、数式や難解な専門用語に溢れており、「説明してもらったけどあんまりよく分からなかった」となることも少なくありません。本記事では数式による説明を極力使わないようにして、ディープラーニングのおおまかな仕組みと、なぜ画像認識や画像生成などが可能なのかを解説していきます。
深層学習(ディープラーニング)の概要
定義
AIと同様、その意味が曖昧に感じられるディープラーニングという言葉ですが、狭義では「4層以上のニューラルネットワークによる機械学習手法」とされています。ニューラルネットワークの「ニューラル」は、生物の脳を構成する神経細胞である「ニューロン」が語源となっており、「人間の脳を模した情報伝達網」という意味で「ニューラルネットワーク」と呼ばれています。
では、どのようにして人間の脳を模倣しているのでしょうか。今回は「犬・猿・キジを見分けるAI」を例として説明していきたいと思います。
基本的な構造
まず、「4層のニューラルネットワーク」とはどのようなものなのかを画像で示します。

縦一列がそれぞれ「1層」となっており、その層が入力層・中間層・出力層合わせて4層あるため、「4層のニューラルネットワーク」と呼びます。
一つ一つの丸がニューロン(ノードやユニットとも呼ばれます)であり、丸を繋いでいる一本一本の線がシナプス(エッジとも呼ばれます)です。シナプスとは、生物の神経細胞や筋繊維の間を接続している接合部分のことです。生物同様、ニューロンとシナプスが作用しあうことで、人間の脳を模した構造を実現しています。
学習の仕組み
入力層→中間層→出力層と順番に情報を伝達していき、入力されたものが何であるのかを考え、答えを出力することを順伝搬といいます。前の層からその次の層へ情報を伝達する際、シナプスとニューロンは次の3つを行います。

直前のニューロンからの出力に重みを掛ける
1の結果を、入力として入ってきたニューロン分、足し合わせる
活性化関数を用いて値を変換し、出力する
重みとは、各シナプスが持っている値で、「どれだけこの情報が重要であるか」を表します。例えば、「尻尾を持っている」「翼を持っている」「頭がある」という3つの情報が、直前のニューロンから得られたとします。「翼を持っている」という情報があればすぐに「キジである」と判断できますが、それ以外の情報では三者を見分けることはできません。この場合「翼を持っている」という情報の重みを大きくすることで、より精度高く犬・猿・キジを見分けることが可能です。
活性化関数とは、「その情報を次に伝達すべきか否かを判断するフィルター」のようなものです。
(例)最も単純な活性化関数:足し合わせた結果、その値が一定の値以上であれば情報を次のニューロンにそのまま伝達し、一定の値未満であれば伝達しない(0かそれに近い値をかけて伝達する)
最近ではより複雑な活性化関数が用いられることが一般的ですが、今回は割愛します。
「学習」とは「実際の答えに対して、最も正答率が高くなるように各シナプスの持つ重みを適切に調整すること」と「適切に調整するために、何度も試行錯誤すること」を指し、機械学習モデルや学習済みモデルと呼ばれているものは、「重みが適切に調整されたもの」を指しています。また、活性化関数は基本的に固定されたものですが、中には学習の中で調整される活性化関数も存在します。
各層の役割
ディープラーニングがどの程度の複雑さの問題を解決できるかを決める要因として、以下の二つが含まれます。
全体で何層あるか(層の深さがどれくらい深いか)
1層あたりのニューロンの数
多ければ多いほどいいというわけではなく、増えれば増えるほど計算コストは増加し、また何度も同じことを「考えすぎてしまう」ことにより、決まった答えしか返さなくなる過学習に陥りやすくなります。
まず、入力層はその名の通り、外からの情報が入力される層です。「犬・猿・キジを見分けるAI」であれば、「写真・映像」が入力として与えられます。人間が視覚から情報を得るのと同じです。
入力層のニューロンの数は、入力されるものによって異なります。例えば、縦256px、横256pxの白黒画像を入力として与えられた場合は、256x256=65,536個のニューロンが入力層に並びます。 もしカラー画像だった場合、赤、緑、青の情報をそれぞれ別々のニューロンに入力するため、3倍の196,608個のニューロンが並びます。(入力が膨大なため、実際の画像認識では工夫して入力を小さくすることがほとんどです。)

そして、中間層に得られた情報を伝達していきます。中間層では、入力からの情報を基に、「それが何であるか」「どのような状態が望ましいか」を考えます。画像認識AIであれば、「どんな形をしているのか」「色は何色か」など画像から具体的に分かる情報から「耳は持っているのか」「牙はあるのか」などの抽象的な情報に変換していき、それらを最終的な判断の材料とする役割を持っています。
入力層・出力層は一つの層のみで、かつニューロンの数も入出力に応じて自動的に定められますが、中間層は層の数もニューロンの数も自由に決められます。多すぎず少なすぎず、解決したい問題の複雑さに合わせた適切な数を人間の手によって設定する(機械学習により自動で設定させる場合もあります)ことで、最適なモデルを作成します。

最後に出力層により、最終的な決断がなされます。出力層のニューロンの数は認識したいものの数と同等であり、今回であれば「犬・猿・キジ」をそれぞれ司る、合計で3つのニューロンが存在します。直前の層から得た情報から、「何%の確信度でそれと判断できるか」を各ニューロンが算出します。犬ニューロンが65%、猿ニューロンが25%、キジニューロンが10%という結果を出した場合、「入力された画像は犬である可能性が一番高いとAIが判断した」ということになります。

このような流れで、AIは「入力された画像に映っているものが何であるか」を判断しています。この後、「実際に答えと照らし合わせて、正解であったかどうか」「不正解の場合、どこを修正すれば正解に近づけるのか(どのシナプスの重みをどう変更するべきか)」を学習していきます。損失関数が出力した結果を利用して、出力層側から入力層側へと逆方向に伝達していくため、逆伝搬(バックプロパゲーション)と呼ばれます。
損失関数とは、「AIの予測と正解がどれくらい違っていたか」を求めるための関数です。損失関数の出力結果は損失と呼ばれ、各重みを調整することで、この損失をいかに小さくするかが学習の根幹となります。
以上が、ディープラーニングの基本的な構成です。この構成を基にして、用途によってさまざまなバリエーションが存在するため、なかでも代表的なものを紹介し、簡単に解説していきます。
利用例と使用されるDNN
利用例1. 画像認識
画像認識を例にディープラーニングの説明を行いましたが、実際には畳み込みニューラルネットワーク(Convolutional Neural Network: CNN)と呼ばれるものが用いられることがほとんどです。畳み込みニューラルネットワークでは、画像を縦8x横8などの小さなまとまりに切り分ける→小さなまとまりごとの特徴を見つける→元の画像を小さくしたもののように、小さなまとまりごとの特徴を画像のように並べる、を繰り返すことで、どんどん情報を小さくまとめていき(畳み込み)、画像認識と学習を行っています。こうすることで、画像の局所的な特徴を効率的に抽出し、画像全体の情報をだんだんと小さくしていきながら学習を行うことができます。
利用例2.需要予測
「今までの結果から未来を予測する」ような使い方をしたい場合には、再帰的ニューラルネットワーク(Recurrent Neural Network: RNN)が用いられます。基本的な構成で説明したようなDNNの画像を複製して縦に並べたような形をしており、一つ前のDNNの中間層の出力が次のDNNの中間層の入力として入っています。これにより、前回の状態(過去のデータ)を入力の一部として次の状態(未来のデータ)を予測することができるため、「前年度までの12月の出荷数と売り上げのデータから、今年度にどれだけの商品を製造・出荷するべきかを決める」「今までの株価に関するデータから、いつ売り買いを行うべきかを決める」といったような時系列データの処理に有効活用されています。
利用例3. 画像生成
画像生成の手法はいくつか存在しますが、特に有名なのは拡散モデルと呼ばれる手法です。学習したデータにランダムなノイズ(良く用いられるのはガウスノイズと呼ばれる、アナログカラーテレビの砂嵐のようなノイズ)を少しずつ加えていき、完全にノイズとなった画像を作ります。その後、そのノイズとなった画像から元の画像に戻すようにノイズを取り除いていきます。取り除く過程でもランダムな入力を元にしながらノイズを取り除いているため、最終的に、元の画像に近いながらも元の画像から少し変わったような画像が生成されます。
利用例4. 文章生成
文章生成で主に用いられているのは、Transformerと呼ばれる機構です。内部の構造は複雑なため今回は触れませんが、この機構では、学習した大規模な文章ファイルを元に、前の文脈から推定してその次にどのような言葉が来るのが適切であるかを判断します。学習する際、一文に含まれる単語同士の関わりや、単語同士の位置の近さ・遠さも重みづけの材料にしており、人間が文法を理解するような要領で文章を学習しているため、比較的自然な文章を生成することができます。
まとめ
本記事では、ディープラーニングの基本的な構造の解説と、利用目的に応じて改良された数種類のニューラルネットワーク構成に関して簡単に触れました。
当社では、今回例として紹介した「犬・猿・キジを見分けるAI」のような画像認識AIをプログラミングなしで作成することができる「TechSword Vision」をご提供しています。詳細な内部構造まではよく分からない!という方でも、AIの開発から運用まで簡単に実現することができます。また、AIに関する悩みや疑問がございましたら、専門知識を持ったエンジニアが説明・解決・サポートいたしますので、いつでもご相談ください。
ご興味がある場合は、ぜひ詳細なサービス説明資料をご請求ください。
また、具体的な導入事例や導入後の流れについても、ご希望に応じて説明させて頂きます。ぜひお気軽にお問い合わせください。


