📝

WEBアプリエンジニアが機械学習を学ぶために使ったコンテンツ2023

2023年は生成AIで盛り上がった年でしたね。こうも毎日生成AIの情報を見ていると、どうしても中の仕組みについて知りたくなってしまい、今年は機械学習の基礎から色々と学びました。

この記事では、僕が今年どんなコンテンツでどのようなことを学んできたのかの紹介をしたいと思います。「普段WEBアプリケーションエンジニアやってるけど、機械学習も気になる。お隣さんどんな勉強やってるんだろ?」なんて思っている方へ、少しでも参考になればと思います。

なお、この記事は「🎄GMOペパボエンジニア Advent Calendar 2023 」の7日目の記事です。

数学

昨年2022年は、趣味で数学の勉強をやっていました。 結果として機械学習の理解にも繋がっていたので記載したいと思います。

基礎線形代数講座

基礎線形代数講座 | PDF
基礎線形代数講座 - Download as a PDF or view online for free
https://www.slideshare.net/SEGADevTech/ss-249343092

セガさんが無償公開されている線形代数学の講座資料です(ありがとうございます)。 学生時代は演算のやり方だけ覚えて乗り切っていたので「行列の積は連立方程式と対応しているんだ!」「連立方程式はベクトルの演算と対応しているんだ!」みたいな感動がありました。

フーリエの冒険

https://www.amazon.co.jp/dp/4906519148

装丁は絵本みたいですが、フーリエ変換を主軸においた数学の本です。 定性的な理解に重点をおいた説明で非常にわかりやすかったです。 独特の雰囲気を持つ本なので人を選ぶかもですが、僕はとてもよいと思います。 微分積分の復習にもなりました。

基礎から学ぶ統計学

基礎から学ぶ統計学 - 羊土社
理解に近道はない.だからこそ,初学者目線を忘れないペース配分と励ましで伴走する入門書.可能な限り図に語らせ,道具としての統計手法を,しっかり数学として(一部は割り切って)学ぶ.独習・学び直しに最適
https://www.yodosha.co.jp/yodobook/book/9784758121217/

図の多用と定性的な理解を狙った説明のおかげで、スムーズに楽しく読み進めることができました。統計学を「使う」という立場を貫いて、めっちゃ難しいところはバッサリ削ぎ落としている割り切りもよかったです。 統計学は全くの初学者だったので、新たな境地を見ることができてとても楽しかったのを覚えています。

機械学習

coursera - Machine Learning

Supervised Learning in Machine Learning: Regression and Classification (DeepLearning.AI) | Coursera
In the first course of the Machine Learning Specialization, you will: • Build machine learning models in Python using popular machine ... Enroll for free.
https://www.coursera.org/learn/machine-learning

アンドリュー・ン先生の機械学習講座です。 線形回帰、ロジスティック回帰、ディープラーニング、決定木、クラスタリング(k平均法)、推薦システム(協調フィルタリング、コンテンツベースフィルタリング)、強化学習(DQNアルゴリズム)。この辺りの基本的なところを、一通り押さえることができました。

コース1は日本語翻訳付きだったので楽に進められたのですが、コース2から英語のみになったので、DeepLにお世話になりながら何とか乗り切りました。

PyTorchチュートリアル(日本語翻訳版)

https://yutaroogawa.github.io/pytorch_tutorials_jp/

ライブラリの使い方を覚えておいたほうがよいと思って、いくつか写経やってみました。ここでCNNが全然わからなくて「ゼロから作るDeep Learning」を読むに至りました。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

https://www.amazon.co.jp/dp/4873117585

ニューラルネットワークのバックプロバケーションの計算グラフによる説明や、畳み込みニューラルネットワーク(CNN)の図解がとてもわかりやすかったです。これ以上わかりやすい説明みたことないかも。とても助かりました。

ゼロから作るDeep Learning 2 ―自然言語処理編

https://www.amazon.co.jp/dp/4873118360

word2vecの章で、よく目にしていた「エンべディング」ってのが漸く分かりましたまた、RNNやLSTMの章でEncoder/Decoder構成について、少し理解することができました。この本で学んだことが、後に大規模言語モデルのキャッチアップに大きく繋がったと思います。

つくりながら学ぶ!AIアプリ開発入門 - LangChain & Streamlit による ChatGPT API 徹底活用

つくりながら学ぶ!AIアプリ開発入門 - LangChain & Streamlit による ChatGPT API 徹底活用
この本では、LangChain と Streamlit を用いて、ChatGPT APIを活用するAIアプリを開発していきます。つくりながら学ぶことを重視し、簡単なチャットアプリ開発から始めて、Embeddingを活用するアプリ開発まで、ステップバイステップで学べます。 AIア
https://zenn.dev/ml_bear/books/d1f060a3f166a5

LangChainも少しは使ってみようと思い、投げ銭して通しでやってみました。エージェントがどういうものかを把握するのに、とてもよい教材だったと思います。

画像生成のしくみから応用まるわかり!

【しばらく全文公開】画像生成のしくみから応用まるわかり!
流行りのテキストからのAI画像生成 (Midjourney, DALL-E 2, StableDiffusion, DiscoDiffusionなど) について、試し方に始まり、歴史、仕組み、応用方法までをまとめます。(���時更新中)
https://zenn.dev/tomo_makes/books/4ed97f06d02a38

Stable Diffusion について理解を深めたいと思い、一通り読んで写経してみました。ノイズ除去の実体が、推論したノイズをひたすら引き算してるだけ、ということを知って驚きました。また、イチゴとリンゴのそれぞれの埋込ベクトルを足して2で割ったベクトルを入力として与えると、どっちつかずの画像が生成されたりして、感動しました。面白い世界でした。やってよかったです。

AIcia Solid Project

AIcia Solid Project - YouTube
データサイエンスVtuber アイシア=ソリッド(Aicia Solid)です。 機械学習、統計、ディープラーニング、AIの動画に加えて、たまに趣味で数学の動画をアップしています。 公式サイトはこちら → https://sites.google.com/view/aicia-official/top クラファン(月額)はこちら → https://community.camp-fire.jp/projects/view/709000 (クラファン始めた理由の動画 → https://www.youtube.com/watch?v=vXY34njwL4o ) 動画の質問、感想等ございましたら、コメント欄やTwitterにどうぞ! お仕事、コラボのご依頼は、TwitterのDMからお願い致します。 Twitter: https://twitter.com/AIcia_Solid/ Editor: AIris Solid (妹) https://twitter.com/AIris_Solid/ Logo: TEICAさん https://twitter.com/T_E_I_C_A Model: http://3d.nicovideo.jp/works/td44519 Model by: W01fa さん https://twitter.com/W01fa (※ニコニ立体ちゃん公式(株式会社ドワンゴ)とは繋がりのない個人のProjectです。)
https://www.youtube.com/@AIcia_Solid

データサイエンスVtuberアイシアさんのYouTubeチャンネルです。要所要所で気になる動画を見ました。パッと見ウッとなりそうな数式を紐解いて、とてもわかりやすく解説されています。数式を理解できた瞬間はグッときますね。とてもお世話になりました。Multi-Head Attentionの動画は必見です。

GoogleSkillBoost

Google Cloud Skills Boost
https://www.cloudskillsboost.google/paths

機械学習モデルの理論や構築を学んでも、実際にそれを稼働させるインフラ事情について全く理解してなかったのでキャッチアップ。座学だけではなく、実際にGCPの画面を扱えることで操作感を把握できるのがよかったです。

大規模言語モデル入門

https://www.amazon.co.jp/dp/4297136333

理論と実装の両面からLLMについて解説した本です。BERTやT5などの言語モデルを使って自然言語処理タスクを解いていきます。実装編をひたすら写経したのですが、データセットの分析、データセットの前処理、モデルの構築、訓練、モデルの評価、といった一連の流れを繰り返すので、なんとなく型として少しカラダに馴染ませることできたかもしれません。ちなみに、この本にサラッと書いてあったLoRA層の説明で、ようやくLoRA層のイメージが掴めました。

まとめ

いかがでしょう?参考になる情報はありましたか。

今年は、勉強していて色々な驚きや発見があり楽しい1年でした。

最近は興味の赴くままに、Huggin Faceの深層強化学習講座を始めてみてます。

Welcome to the 🤗 Deep Reinforcement Learning Course - Hugging Face Deep RL Course
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
https://huggingface.co/learn/deep-rl-course/unit0/introduction

来年もまた楽しみですね。

PR

このサイトは「MuuMuu Sites」を使って作成しています。Notionで作成したコンテンツに、自分好みのデザインとドメインをあてて、簡単にWebサイトを作れるサービスです。便利なので、興味があったら公式サイトを見てみてください!

MuuMuu Sites — Notionでつくろう、あなたらしいWebサイト。 | ムームードメイン
名刺のかわりになるような、あなたらしいWebサイトをつくりませんか。NotionとMuuMuu Sitesの組み合わせなら、お手軽です。公開に必要なのは、ドメインだけ。利用料金は無料です。
https://muumuu-domain.com/muumuu-sites/