見出し画像

今こそ知っておこう!ChatGPT登場までのAI発展の歴史④ ~ディープラーニング~

ChatGPTの登場以来AI業界は急激な盛り上がりを見せていますが、ChatGPTは突然生まれたわけではありません。AI(人工知能)という概念が登場して以来、研究は一歩一歩進んできました。過去にどのようなとができるようになり、どんな課題が立ちはだかってきたのか。その課題はどうやって突破されたのか。そのような歴史の流れを知ることで、現状を理解し、今後のAI研究がどう発展していくのかを考える助けとなります。
前回は、第3次 AIブームの機械学習について説明いたしました。本記事では、ニューラルネットワークとAI業界に革命を起こしたディープラーニングを説明いたします。


ディープラーニングの台頭

2012年、カナダのチームが画像認識の分野で革命的な成果を出し、人工知能研究の世界に衝撃が走りました。世界的な画像認識コンペティション「ILSVR」で前例のない成功を収めたのです。

このコンペティションでは、その年までの優勝チームでもエラー率は26%の±1%程度で推移しており、この年の1位もその程度の成績だろうと予測されていました。しかし、カナダのチームはなんとエラー率15.3%というダントツの成績をマークしたのです。

従来のコンピュータビジョンの常識を打ち破るこの成果は、コンピュータが自ら特徴量を獲得するディープラーニングという技術によるもので、従来の技術とは一線を画するアプローチにでした。

ディープラーニングの起源

ディープラーニングは、人間の脳細胞であるニューロンの仕組みを模倣したニューラルネットワークモデルから誕生しました。ニューラルネットワークは、機械学習モデルの一種で、前回紹介したような教師あり学習のモデルとして使用されました。

ニューラルネットワークはその他のアルゴリズムとは異なり、人間の神経回路を模倣しています。人間の脳細胞がどのように動作するかに基づいており、ニューロン間で電気刺激が伝達される仕組みを数学的に表現したものがニューラルネットワークです。

ディープラーニングはこのニューラルネットワークモデルを多階層に積み重ねたもので、層を深く重ねることから「ディープ(深層)」という名称がつけられました。

人間の脳のネットワーク

AIの学習モデルのニューラルネットワークを理解する前に、私たち人間の脳はどのように動いているのかを見てみましょう。

人間の脳は、ニューロン(神経細胞)のネットワークなどで構成されています。あるニューロンは他のニューロンと隣接しているシナプスから電気刺激を受け取り、それらの受け取った電気刺激の総和が一定量を超えると発火して、次のニューロンへ電気刺激を伝えます。これらが連鎖的に伝わることで人間が感じたり、思考したりしていると考えられています。

私は書籍でニューロンの構造を見たときに、「どうしてニューロンはこんなにいろいろなところと絡み合っているんだろう?近辺の発火から影響を受けて自身が発火して、それが何の役に立つのだろう?」と思ったものです。
それがAIの仕組みを理解することでなんとなくわかるようになってきました。

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

教師あり学習モデルとして使用されるニューラルネットワークの仕組みを理解するため、手書きの数字の画像から数字を認識する方法を考えてみましょう。

私たち人間は数字が書かれた画像を見てパッと数字を理解できますよね。「3」という字が書かれた画像を見て、そこに「3」が書かれているとわかります。しかし実際のところ、目が受け取っている感覚は、光の強さの情報の集まりであり、その集まりからではそのまま「3」だと認識することはできません。「3」だと理解するためには、認識というプロセスを踏む必要があり、認識して初めて目で目に入ってきた数字が「3」だと理解することができます。

コンピュータにとっての認識

コンピュータにとっても、認識の過程は同じです。そもそも画像というのは、1ピクセルごとに光の情報が収まっており、白黒なら光の強さが、カラーならR,G,Bであらわされた色データが格納されていて、それが並んでいるだけです。人間にとっても数字羅列を見ただけでは、何のことだか意味がわからないでしょう。その1ピクセルごとの光の情報の羅列を見て、入力画像にどの数字が書かれているのかを判断する、その過程が認識です。

では、与えられた数字画像から機械がどうやって数字を判定していくのかの流れを考えていきましょう。実際の手書きの数字には個人個人の書き方で乱れが大きいので、簡易的に考えるために入力される手書き数字はデジタル数字に近いようなものだと想定してみ進めてみます。

もし、入力される数字がデジタル数字のようなものだとすると、数字画像を左右と上下真ん中に分割し、縦線・横線で分けて、以下のように分割したものを特徴量としてみると認識しやすそうです。

数字の認識

① 左上の縦線
② 左下の縦線
③ 右上の縦線
④ 右下の縦線
⑤ 上の横線
⑥ 真ん中の横線
⑦ 下の横線

例えば、③は画像右上に縦線があるかどうかを判断する役割が与えられています。与えられた役割に従って、右上当たりの画像から線分を見つけ出せばいいわけです。画像から線分を見つけ出す処理方法は画像研究では以前から存在していて、比較的簡単に適用することができます。

そして、上記の①~⑦の役割がニューラルネットワークでの中間層に該当するものです。入力された画像が「3」という数字だと判断するためには、①と②の数値が小さくて、③、④、⑤、⑥、⑦の数値が大きければ、それは「3」という数字に近いと言えます。上記のようなプロセスでコンピュータは入力された画像が「3」だと判断することができます。

デジタルの数字画像の認識を例に出したので簡易化されていますが、実際の処理も似たようなことをしていますので、概念としてはこの流れを理解していただければいいと思います。

さて、ここまでの状態では、まだ特徴量を人間が抽出している状態です。
左上の縦線や右下の縦線などの特徴量を人間が決めたうえで、機械学習を通して重みづけなどを決定していました。

2012年世界的な画像認識コンペティション「ILSVR」で世界に知られることになったディープラーニングでは、特徴量自体を機械に見つけさせることができるようになりましたが、どうやって実現したのでしょうか?

特徴量自動化はどうやって実現したか

特徴量

特徴量とはその言葉通り、対象の特徴をよくとらえているものということですね。情報量の側面から考えてみればそれは情報の圧縮と言えます。

画像に対しての特徴量とは、画像からうまく圧縮されたデータの集まりであり、よい特徴量とはそれらを使って元の画像をうまく再現できるものと言い換えられます。その性質を使って、特徴量の自動抽出にあたって以下のように行いました。

①入力画像からニューラルネットワークを使って、ある場合の特徴量を抽出する。
②抽出された特徴量を使って入力画像を復元し、復元の精度を精査する。
③特徴量を変化させて①、②を繰り返す。

上記を自動で行っていけば復元精度が高い特徴量を見つけることができます。その選ばれた特徴量こそがその画像に適している特徴量ということですね!

この方法のすごさは、教師あり学習で行ったような学習のためのデータを準備する必要がないということです。入力画像そのものが教師あり学習での正解だからです。一度圧縮してから復元し、復元画像と入力画像を比べるので、前もって正解を与える必要がないのですね。

ディープラーニングとは

上記で説明したものが特徴量自動化の仕組みになりますが、この段階ではまだディープ(深い)ではありません。ディープラーニングとは、ニューラルネットワークの特徴量の抽出を何層にも深めて実行することです。

まず入力に対して、それを最もよく復元できる第一階層の中間層を抽出します。その後、その第一階層を入力として、その第一階層をもっともよく復元できる第二階層を抽出。それを何度か繰り返すことで層を積み重ねていきます。このように何層も重なって深くなっていくので、ディープラーニングと呼ばれています。

層を深めることでどういうことが行われているのかというと、第一階層、第二階層へと深めることで抽象度を上げています。
例えば、第一階層では線分だけを抽出する。第二階層ではその線分を使って丸や四角、三角などの単純な図形を抽出する。第三層ではそれらの単純な図形を組み合わせて、顔や手などを判別するなどのようになっていきます。

では、どうして中間層を何層も重ねる必要があるのでしょうか?1つの中間層を増やせば、それで十分に対応することができるのではないでしょうか?

それは限られた資源を効率よく使いこなすためにそのような形になったと推測されます。

例えば、入力の画像が1000*1000=1000000ピクセルのデータから特徴量を取り出すことを考えてみましょう。
取り出す特徴量の個数を90個だとすると、すべてで何通りのパターンが存在するでしょうか?
1000000*90=9億 のパターンが存在します。

では、特徴量の数を変えずに30個ずつ3層に並べる場合は、どれだけのパターンが表せるかというと、
1000000*30*30*30=270億 のパターンが存在します。

つまり、特徴量(ニューロン)の数を変えずに層を深めることで、より多くのパターンを表せることになり、その方が効率がよくなっています。

ニューロン1つ1つが行っている作業は単純で、それぞれが近隣からの出力を受け取り、自身が発火するかどうかを決めているだけです。ディープラーニングで1つの層がやっていることも同様で、線形で情報を足し合わせるという簡単な処理をするだけですが、それを繰り返すことによって複雑な処理を実現することを可能にしています。

ニューラルネットワークからディープラーニングへと技術が発達し、機械に自動的に特徴量を抽出させる技術がついに台頭してきました。今までのAI研究の中で一番大きな課題だといっても過言ではない特徴量の自動抽出を実現しました。ディープラーニングでの画像認識に成功してから、ChatGPTのような大規模言語モデル(LLM)の出現まであと少しです!

この記事が気に入ったらサポートをしてみませんか?