テック

【機械学習の学習】機械学習の論文でよく出てくるEnd-to-end(エンドツーエンド)とはどういう意味か

エンドツーエンドというのは一般的に「端から端まで」という意味だが、機械学習系の論文を読んでいるとよく出てくる「エンドツーエンド」にそのまま端から端までと読み替えると理解しがたい。

調べていて、日本語に該当するようなものは見つけられなかったのだが、この概念を理解するには深層学習(ディープラーニング)の意味を抑えることが必要だと思った。

なぜ論文ではやたらエンドツーエンドにこだわるのか?これを読み解いていく中で、コンピュータの歴史における深層学習がもたらしたブレイクスルーや、現在のAIブームの要因についても整理することができた。

 

一般的なエンドツーエンドの説明

例えば、車の画像があったときに、人間がこの車の画像に「車」というラベルを付ける。これを「教師付きデータ」と呼んだりする。

このラベルはものの特徴に名前を与えるから、教師という言い方をするのだが、ディープラーニングのアルゴリズムでは、画像からその特徴を読み取って、どのカテゴリに分類すればよいかを自動的に学ぶ。(そこに意思はないが自動的に学習する)

つまり、ディープラーニングはその画像や文章の特徴をデータから直接学習することができる。このように、画像データであれば、画像から直接学習できる特徴からディープラーニングはエンドツーエンドの学習であると言われる。

 (初学者の解釈ですので、ご指摘ください)

深層学習におけるCNN

もう少し踏み込むと、深層学習においては一般的には「畳み込みニューラルネットワーク」というアルゴリズムが使われている。これがよく出てくるCNN(Convolutional Neural Network)である。

下のあるような図を見たことがある人は少なくないと思う。これがCNNの概念図である。入力層(input layer)から隠れ層(hidden layer)、そして出力層(output layer)の3つの層により構成されている。

実際はこの隠れ層はもっと多層化されていることがおおく、一般的にこの隠れ層や中間層(詳細はここでは説明しない)を増やすことでより正確な出力が可能になったりする。

 

Neural network example

そもそもであるが、一般的にロボットは決められたことしかできない。それが人間が見るロボットのイメージ通りの姿であり、逆にそれがロボットの正確性や速度の源でもあった。

これまでロボットが、例えば物体を正しく認識するためには人間が事前に特徴を抽出して、それをプログラミングによって覚えさせることが必要であった。ここにこれまでのエンジニアの創意工夫やノウハウが詰まっていたわけで、単純な特徴で最大の効果を出すことにエンジニアの腕があったのだ。

 

しかし、このCNNという方法は畳込みという作業を行うことで、特徴を概念的に抽出することができる。つまり、少しくらい色や形や大きさが違っても、畳み込みを複数回行っていくことで、入力の違いに鈍感になるのだ。

頑固な職人がプログラミングをして動いていたロボットがすこしは、柔軟な判断ができるようになったと思うとわかりやすい。しかも驚くべきことに特に画像認識分野では人間よりも高い認識率を出せることがわかった。

そうなると、いままで人間が特徴を選んで覚えさせるだけと思われていたコンピュータがCNNを用いることでコンピュータ(ロボット)自身が特徴を選んでいるように見えるのだ。つまり、入力を前処理無しで直接ニューラルネットワークに取り込み、最終的な出力を人間よりも正確にできるようになったのだ。

これこそが、エンドツーエンドでの学習というわけであり、このファジーさを許容するところが一つの進歩であり、近年AIブームが起こった一番の理由にもつながっているのである。

 

コンピュータが自動的に学習したというのはどういうことか?

もともと郵便局では文字の認識に特化した機械学習を用いていたわけであるし、何も画像を認識すること自体は近年出てきた技術ではないけれど、これがパーソナルコンピュータの性能がよくなり、CNNがまともに動くようになると、文字だけではなく写真や音楽、文章といったデータのすべてを扱うことができるようになった。

今回は、最も基本の教師付きデータでの深層学習を取り上げたが、教師なし学習というものもあり、あの有名なAIがユーチューブから猫を学習したというニュースはこの部類の研究成果である。

この研究も勘違いされがちだが、あくまでもたくさんの画像を学習させた結果、猫の特徴をもつクラスタを見つけたというだけの話である。同時に車クラスタや人間クラスタも見つけている。(統計におけるクラスタリングに近い話)*1

だからこの猫クラスタという概念に対しては、人間の赤ちゃんと同じように「これは猫だよ!」と教えなければならず、決して、あらゆる人間界の情報をもとに、自動的に画像と人間の言語を学習して「猫」というラベルを自己学習できたというわけではない。

あとは、人間が猫クラスタに「猫」というラベルをつけてあげれば、ラベルのない画像や新しい品種の猫も「あ、これは猫っぽい特徴をもってるから猫!」というふうに分類(クラス化)することができる。(これは教師あり学習や半教師あり学習と呼ばれる)

 

つまるところ、まとめるとこれまでは人間が特徴量を選んでいたり、入念な前処理を必要としたためにコンピュータだけで判断するところが少なかった。

しかし、今は深層学習により多少のファジーさを許容できること、そしてそれを実行できるコンピュータ処理能力が高まったことで、入力から出力まで一貫して自動的に行われた。

これこそが深層学習においてエンドツーエンドを可能にしたと言われるそのゆえんである。