深層学習の発展
本ページの内容は、この動画でも解説しています。
https://youtu.be/rB8aLfgDJSk
深層学習による画像分類モデルの変遷
CNN(畳み込みニューラルネットワーク)
https://gyazo.com/b97317d8152c1416396ddcdbe00c88f2
図の引用:伊庭斉志, 「進化計算と深層学習―創発する知能―」(2015)
AlexNet
2012年に発表されたCNNモデル
全8層
https://gyazo.com/701f460eed32ca902549247c1925469c
例:第1層のパラメータ
https://gyazo.com/2191b3645a47c9c0db32afe95067c508
48個のユニットを2つのGPUで学習
1つめのGPUでは境界線に関する特徴が、2つめのGPUでは色に関する特徴が抽出されている
図の引用:杉山聡, 「本質を捉えたデータ分析のための分析モデル入門」(2022)
ILSVRC(ImageNet Large Scale Image Recognition Challenge)という画像認識のコンペで、それまで26%だった誤り率(予測結果を上位5位まで出してその中に正解があればよい、というもとでの誤り率)の記録を、AlexNetは16%まで一気に改善した ちなみにその後、2015年には人間の精度5.1%を超え、2017年の優勝モデルは2.25%とのこと
VGGNet(2014年)
19層のモデル
前半部分は画像の一般的な特徴を抽出しているため、他のCNNにも転用できる
これを転移学習(transfer learning)という
学習の高速化、少データ時の精度向上に利用できる
GoogLeNet(2014年)
ResNet(2015年)
152層のモデル
残差学習(residual learning)という工夫により、深い層の学習に成功
おまけ:花の画像の分類アプリ
201層の深層学習モデルDenseNet-201を用いているとのこと
深層学習による自然言語処理
自然言語処理
自然言語処理では基本的に、文章(sequence, 以降seqと表記することにする)と、そこに含まれる単語をもとに文章(seq)をベクトル(vector, 以降vecと表記することにする)に変換したものをもとに、さまざまな処理を行う
単語や文章をベクトルで表現することを分散表現(distributed representation)という
機械に「意味」を理解させる(それは低次元のベクトルで表現できる)試み
自然言語処理に限らず、このような「本質」をベクトルで表現する試みを表現学習という
https://gyazo.com/9117c232a93551ea393a051911f68733
図の引用:杉山聡, 「本質を捉えたデータ分析のための分析モデル入門」(2022)
自然言語処理タスクの種類
ほとんどの自然言語処理のタスクは、文字列のベクトルへの変換:seq→vec、ベクトルからの文字列の生成:vec→seqの2つの組み合わせで表現できる
seq→vecの代表的タスク
文章の分類
感情分析(文章がポジティブかネガティブか分類するなど)
文書検索
情報抽出
など
vec→seqの代表的タスク
文章の生成
画像からのキャプション(見出し)生成
など
seq→vecを、文章を意味ベクトルに変換するエンコーダー(encoder)、vec→seqを、意味ベクトルから文章を生成するデコーダー(decoder)とし、それぞれの機能を組み合わせて、seq→vec→seq、すなわち文章から文章を生成するタスクも頻繁に研究、実用化されている
機械翻訳
対話生成
文章要約
質問応答
などなど
https://gyazo.com/7737a5c65b58daa5881962486fd8c5ae
図の引用:杉山聡, 「本質を捉えたデータ分析のための分析モデル入門」(2022)
深層学習による自然言語処理モデルの変遷
word2vec
単語をベクトルに変換する2層のニューラルネットワーク
https://gyazo.com/995f52b9ced6ca025da03f5ed79edc75
図の引用:杉山聡, 「本質を捉えたデータ分析のための分析モデル入門」(2022)
大きくCBoW(Continuous Bag-of-Words)とskip-gramの2つのモデルがある(word2vecはそれらの総称)
RNN(再帰型ニューラルネットワーク)
再帰的な処理を含み、自然言語、時系列などの系列データを扱える
系列データの処理のイメージ
言語の翻訳を例に考えると
https://gyazo.com/ca462fe890f805d82a4386aa99bd7f0b
図の引用:杉山聡, 「本質を捉えたデータ分析のための分析モデル入門」(2022)
文章データを意味に変換(encode)して、それをもとに文章を出力(decode)する
Encoder-Decoderモデル
これに基づくRNNの図式
https://gyazo.com/18b4c6146e7b4eee9aef36dea112843a
https://gyazo.com/adbbf8ec16229c59b29eb2bf3f379145
図の引用:杉山聡, 「本質を捉えたデータ分析のための分析モデル入門」(2022)
LSTM(Long Short-Term Memory)
RNNでよく用いられる高性能な層
記憶を長くもたせる工夫
GNMT(Google's Neural Machine Translation)(2016年)
Google翻訳で用いられたモデル
LSTMを用いたEncoder-Decoderモデル
https://gyazo.com/0c347f74951751065749e95767bfbefd
図の引用:杉山聡, 「本質を捉えたデータ分析のための分析モデル入門」(2022)
EncoderとDecoderの間の情報のやり取りにAttention機構が用いられる
文脈からどの単語に注目するかを判断する
Transformer(2017年)
Multi-Head Self-Attention機構によるブレークスルー
自然言語処理を超えてさまざまなタスクに応用、高性能を示す
https://gyazo.com/08b488233595dd36111c66d0f735cbbc
https://gyazo.com/35a67204895b2afc3d12e62393f49a52
図の引用:杉山聡, 「本質を捉えたデータ分析のための分析モデル入門」(2022)
Transformerのさまざまな応用
BERT(2018年)
Bidirectional Encoder Representations from Transformers
大規模データで事前学習したあと、タスクに応じてファインチューニングする
事前学習が十分に行われていれば、ファインチューニング用のデータは少なくてよい
ファインチューニングのコストは小さい(短時間ですむ)
https://gyazo.com/ccb6ad391c582a3df052e10d4b088365
図の引用:杉山聡, 「本質を捉えたデータ分析のための分析モデル入門」(2022)
GPT(Generative Pretrained Transformer)
OpenAIにより開発
TransformerのDecoderをベースにしたモデル
GPT-1(2018年)、GPT-2(2019年)ときて、GPT-3(2020年)が大きな話題に
1750億パラメータのモデル
ごく最近の話題はChatGPT
ViT(Vision Transformer)
画像認識にTransformerを利用したモデル
画像生成AI
DALL-E
dVAE(discrete Variational AutoEncoder)とTransformerの組み合わせ