人工知能(AI)の話題になると、「ディープラーニング」という言葉がよく登場します。ディープラーニングとは機械学習の一種で、「深層学習」と呼ばれることもある技術です。「深層学習=ディープラーニング」は正しいのですが、「機械学習=ディープラーニング」は誤りですので注意してください。ディープラーニングは、たくさんある機械学習の手法の1つに過ぎません。
今回からは、いよいよこのディープラーニングについて解説していきます。
3つの言葉の包含関係
本連載の初回に、最近よく見かける言葉として「人工知能(AI)」「ディープラーニング」「機械学習」の3つを挙げました。これらの関係性は、「人工知能(AI)の一部に機械学習が用いられており、さらにその機械学習のなかの一部がディープラーニング」となります。
![]() |
3つの言葉の包含関係 |
ここで、機械学習には「教師あり学習」「教師なし学習」「強化学習」という分類があることを覚えておられる方は、ディープラーニングはこれらの内のどこに入るのか疑問に思うかもしれません。
実は、ディープラーニングはそれら全ての分類において使い方が提案されています。したがって、「ディープラーニングは教師あり学習のための手法だ」のように言い切ることはできません。今回は便宜上、具体的な説明をする場合は、教師あり学習を行うことを想定して解説していきたいと思います。
教師あり学習は「あらかじめ正しいデータを与え、そこから自動でルールやパターンを学習する方法」です。「ディープラーニングの教師あり学習」とは、自動でルールやパターンを学習するためにディープラーニングを用いることを言います。第4回の教師あり学習の解説で、表の中に「●」を付けていく作業を行いましたが、その作業がディープラーニングに置き換わるイメージです。
ディープラーニングは何をやっているの?
まずは、「ディープラーニングは一体何をやっているのか」について解説しましょう。
ディープラーニングと聞くと、ここ数年で登場した最新の手法、というイメージがあるかもしれませんが、実はディープラーニングの基礎となる考え方は1950年代に既に発表されていました。このディープラーニングの起源となるものは「パーセプトロン」と呼ばれます。
パーセプトロンは「複数の入力を受け取り、1つの出力を返す」という非常に単純なものです。入力は数値で、出力は0と1のいずれかです。複数の入力から入ってきた数値を足し合わせたものが出力側に送られ、その合計値によって0を出力するのか1を出力するのかが決まる構造になっています。注意すべきは、入力された値はそのまま出力側に送られるのではなく、途中で「重み」が掛け算されるという点です。図示すると次のようになります。
![]() |
A、Bの入力値にそれぞれ「重み」が掛け算された上で合算され、その合計値がCで判定されて0または1が出力される |
AとBが入力の部分で、Cが出力の部分です。この図では入力はAとBの2つですが、実際にはいくつあっても構いません。AまたはBから入力された値は、矢印に沿ってCまで運ばれます。その際、そのまま運ばれるのではなく、「重み」に基づいて値が変化します。この「重みに基づいて値が変化する」という点が非常に重要なポイントです。
重みとは、ホースの太さのようなものだと考えてください。Aから入力された値は、ホースの太さ(重みの大きさ)によって、値の大小を変えてCへ送られるのです。Bに関しても同様です。AとBの重みに影響を受けてCに送られた入力は、Cで合算され、そこで1と0のどちらを出力するかが決まります。1と0のどちらを出力するかは、Cにあらかじめ設定された値を超えていれば1、超えていなければ0となります。
もう少し具体的な例で見てみましょう。入力AおよびBから、ある量の水を注入するとします。Cの条件は「300ml以上ならば1を出力し、300ml未満ならば0を出力する」と設定しておきます。この時、入力Aから150ml、入力Bから50mlを入れた場合、Cからは0と1のどちらが出力されるでしょうか。
当然、AとBの重みにどんな値が入っているかによって、0と1のどちらが出力されるかが変わります。まずは、Aの重みが1、Bの重みが2の場合を考えてみましょう。
この場合、Aからは150mlの水が入れられ、重み1のホースを通って、入力と同じ150mlがCへと渡されます。一方、Bからは50mlの水が入れられますが、重みが2のホースを通るため、Cへは50mlが2つ送られます。つまり、CはAからは150mlですが、Bからは50mlを2つ、すなわち100mlの水を受け取ります。結果、Cは合計で250mlの水を受け取ります。Cには「300ml以上ならば1を出力し、300ml未満ならば0を出力する」という条件が設定されているので、出力されるのは0となります。
次に、Aの重みが2、Bの重みが1の場合を考えてみましょう。
この場合、Aからは150mlの水が入れられますが、重み2のホースを通るため、150mlが2つCへと渡されます。一方、Bからは50mlの水が入れられ、重みが1のホースを通って、入力と同じ50mlがCへ送られます。つまり、CはAからは150mlを2つ、すなわち300ml、Bからは50mlの水を受け取ります。結果、Cは合計で350mlの水を受け取るので、出力されるのは1となります。
同じ入力値でも、重みが違えばCから出力される値が異なることがおわかりいただけたでしょうか。重みは、「その重みに関係する入力をどのくらい重要だと考えるか」の指標です。(1)では入力Bを重要だと考えていますし、(2)では入力Aを重要だと考えています。ディープラーニングで学習するのは、このホースの太さ(重み)の値です。
教師あり学習の場合、教師データにはAから入力する水の量とBから入力する水の量、およびその時のCからの出力として0または1が記載されています。記載された水量がAおよびBから入力された場合に、0または1が正しく出力されるよう、ホースの太さ(重み)を調整(学習)していくわけです。
パーセプトロンは非常にシンプルな構造なので、「こんなもので何ができるのだろう」と思うかもしれません。しかし、この考え方こそディープラーニングの基礎となるものなので、ぜひしっかり理解しておいてください。
著者紹介
![]() |
国立研究開発法人 情報通信研究機構
ユニバーサルコミュニケーション研究所
データ駆動知能システム研究センター 専門研究員
大西可奈子
2012年お茶の水女子大学大学院博士後期課程修了。
博士(理学)。同年、大手通信会社に入社。2016年より現職。
一貫して自然言語処理、特に対話に関する研究開発に従事。
人工知能(主に対話技術)に関する講演や記事執筆も行う。
twitter:@WHotChocolate