2023年は生成AIで盛り上がった年でしたね。こうも毎日生成AIの情報を見ていると、どうしても中の仕組みについて知りたくなってしまい、今年は機械学習の基礎から色々と学びました。
この記事では、僕が今年どんなコンテンツでどのようなことを学んできたのかの紹介をしたいと思います。「普段WEBアプリケーションエンジニアやってるけど、機械学習も気になる。お隣さんどんな勉強やってるんだろ?」なんて思っている方へ、少しでも参考になればと思います。
なお、この記事は「🎄GMOペパボエンジニア Advent Calendar 2023 」の7日目の記事です。
数学
昨年2022年は、趣味で数学の勉強をやっていました。 結果として機械学習の理解にも繋がっていたので記載したいと思います。
基礎線形代数講座
セガさんが無償公開されている線形代数学の講座資料です(ありがとうございます)。 学生時代は演算のやり方だけ覚えて乗り切っていたので「行列の積は連立方程式と対応しているんだ!」「連立方程式はベクトルの演算と対応しているんだ!」みたいな感動がありました。
フーリエの冒険
装丁は絵本みたいですが、フーリエ変換を主軸においた数学の本です。 定性的な理解に重点をおいた説明で非常にわかりやすかったです。 独特の雰囲気を持つ本なので人を選ぶかもですが、僕はとてもよいと思います。 微分積分の復習にもなりました。
基礎から学ぶ統計学
図の多用と定性的な理解を狙った説明のおかげで、スムーズに楽しく読み進めることができました。統計学を「使う」という立場を貫いて、めっちゃ難しいところはバッサリ削ぎ落としている割り切りもよかったです。 統計学は全くの初学者だったので、新たな境地を見ることができてとても楽しかったのを覚えています。
機械学習
coursera - Machine Learning
アンドリュー・ン先生の機械学習講座です。 線形回帰、ロジスティック回帰、ディープラーニング、決定木、クラスタリング(k平均法)、推薦システム(協調フィルタリング、コンテンツベースフィルタリング)、強化学習(DQNアルゴリズム)。この辺りの基本的なところを、一通り押さえることができました。
コース1は日本語翻訳付きだったので楽に進められたのですが、コース2から英語のみになったので、DeepLにお世話になりながら何とか乗り切りました。
PyTorchチュートリアル(日本語翻訳版)
ライブラリの使い方を覚えておいたほうがよいと思って、いくつか写経やってみました。ここでCNNが全然わからなくて「ゼロから作るDeep Learning」を読むに至りました。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ニューラルネットワークのバックプロバケーションの計算グラフによる説明や、畳み込みニューラルネットワーク(CNN)の図解がとてもわかりやすかったです。これ以上わかりやすい説明みたことないかも。とても助かりました。
ゼロから作るDeep Learning 2 ―自然言語処理編
word2vecの章で、よく目にしていた「エンべディング」ってのが漸く分かりましたまた、RNNやLSTMの章でEncoder/Decoder構成について、少し理解することができました。この本で学んだことが、後に大規模言語モデルのキャッチアップに大きく繋がったと思います。
つくりながら学ぶ!AIアプリ開発入門 - LangChain & Streamlit による ChatGPT API 徹底活用
LangChainも少しは使ってみようと思い、投げ銭して通しでやってみました。エージェントがどういうものかを把握するのに、とてもよい教材だったと思います。
画像生成のしくみから応用まるわかり!
Stable Diffusion について理解を深めたいと思い、一通り読んで写経してみました。ノイズ除去の実体が、推論したノイズをひたすら引き算してるだけ、ということを知って驚きました。また、イチゴとリンゴのそれぞれの埋込ベクトルを足して2で割ったベクトルを入力として与えると、どっちつかずの画像が生成されたりして、感動しました。面白い世界でした。やってよかったです。
AIcia Solid Project
データサイエンスVtuberアイシアさんのYouTubeチャンネルです。要所要所で気になる動画を見ました。パッと見ウッとなりそうな数式を紐解いて、とてもわかりやすく解説されています。数式を理解できた瞬間はグッときますね。とてもお世話になりました。Multi-Head Attentionの動画は必見です。
GoogleSkillBoost
機械学習モデルの理論や構築を学んでも、実際にそれを稼働させるインフラ事情について全く理解してなかったのでキャッチアップ。座学だけではなく、実際にGCPの画面を扱えることで操作感を把握できるのがよかったです。
大規模言語モデル入門
理論と実装の両面からLLMについて解説した本です。BERTやT5などの言語モデルを使って自然言語処理タスクを解いていきます。実装編をひたすら写経したのですが、データセットの分析、データセットの前処理、モデルの構築、訓練、モデルの評価、といった一連の流れを繰り返すので、なんとなく型として少しカラダに馴染ませることできたかもしれません。ちなみに、この本にサラッと書いてあったLoRA層の説明で、ようやくLoRA層のイメージが掴めました。
まとめ
いかがでしょう?参考になる情報はありましたか。
今年は、勉強していて色々な驚きや発見があり楽しい1年でした。
最近は興味の赴くままに、Huggin Faceの深層強化学習講座を始めてみてます。
来年もまた楽しみですね。
PR
このサイトは「MuuMuu Sites」を使って作成しています。Notionで作成したコンテンツに、自分好みのデザインとドメインをあてて、簡単にWebサイトを作れるサービスです。便利なので、興味があったら公式サイトを見てみてください!