人工知能(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となります。