最近、自然言語処理用(NLP)のAI、チャットGPTがその性能の高さゆえ着目されています。ここで使われているのがTransFormerというアルゴリズムです。このTransFormerはNLPだけでなく他の分野のAIでも高性能が期待できるため、 今後、深層学習の中心技術となる可能性があります。そこで、ここでは、深層学習の例題として有名なirisの分類をTransFormerで 解いたプログラムを公開します。この例を参考にして、全結合型の深層学習の問題にTransFormerを適用することにチャレンジしていただければ幸いです。また、今後は、画像処理(従来はCNNで対処)や時系列データの処理(従来はLSTM等で処理)へのTransFormerの適用例を紹介していく予定です。なお、今回の紹介はGoogle
Colab上でkerasを用いていますが、PyTorchを用いた例も順次紹介する予定です。また、TransFormerを用いたチャットポット作成はhttps://qiita.com/kasagon/items/f2b47e9b9b4d3494eecに詳しい解説が載っていますので興味のある方はそちらを読んではいかがでしょうか。
参考にした(ほとんどコピーした)TransFormerアルゴリズムを用いたiris分類のプログラムは、その解説とともにhttps://qiita.com/hikiniku11029/items/79c2d55841cb1ec0639cで公開されています。
google colabで動作する今回のプログラムはここから入手できます。
TransFormerの論文(31st Conference on Neural Information Processing Systems(NIPS2017),Long
Beach,CA,USA, A.Vaswani, N. Shazer, N. paramar, J. Uszkoreit, L. Jones,
A. N. Gomez, L. Kaiser, I. Poloukhin)では、その構造が示されています。ここでは、https://keras.io/examples/nlp/text_classification_with_transformer/
に従って、図の左側の部分(エンコーダ側)のみを使っています(多分)。そして、この部分を通常の全結合型深層学習の層に組み込んでいます。
2023年6月22日にPyTorch+TransFormerを用いた画像分類(スミレの分類)と時系列データの予測を公開しました。ともにgoogle colab上で動きます(動かし方の解説書付)。プログラム内に参考にしたプログラム(ほとんどコピーです)の出所を示してありますので詳しくはそちらを見てください。プログラム等は下線部分をクリックすると入手できます。