はじめに
本記事ではAI知識ゼロから始めてAIエンジニアとして実務にチャレンジできるレベルを目指してロードマップ形式でコンテンツをまとめました。
生成AIの台頭、SakanaAIの大型資金調達やGoogleの研究者(ヒントン氏ら)のノーベル賞受賞も重なり、さらにAIへの注目が集まっている状態かと思います。
しかし初学者にとって、AIを学ぶハードルはまだまだ高いのが現状です。AIをツールとして活用するだけなら比較的障壁は高くないですが、理論的な部分まで含めると学ぶべき内容が広く、分野によっては難易度が高く、せっかく学び始めたのに挫折する人も多いです。
- 未経験だけどAIの知識を身につけたい
- 現在web開発の知識があり、AIも学びたい
- AIを学んでエンジニアインターンや実務で活躍したい
といった方は是非読み進めていってください。
コンテンツは随時追記していきます。
構成
本記事は下記のような構成でコンテンツをまとめています。
ゼロからAIエンジニアを目指すための順番を意識して記載していますが、気になるところから読んでいただいても問題ありません。
0|概観
1|AI基礎
2|ソフトウェア開発基礎
3|論文リサーチ基礎
4|おまけ
5|まとめ
それでは、さっそくみていきましょう!
GEEK OFFERではTwitterでエンジニア学生の役に立つ情報をお届けしているのでぜひチェックしてみてください!
0|概観
「人工知能とは?」「AIエンジニアとは?」という方はまずここからスタートしましょう。
全体像を理解する上でおすすめの書籍を下記に紹介します。
人工知能とは?
人工知能は人間を超えるか
東大松尾研教授の松尾豊先生の著書です。人工知能の歴史の中でなぜ深層学習が画期的だったのかを説明しています。
人工知能の歴史や深層学習の概要を体系的に知ることができます。
一から始める機械学習(機械学習概要)
機械学習の概要がまとまっている記事です。人工知能と機械学習の違いや、深層学習が注目されている背景を理解することができます。
また、おすすめの学習教材についても紹介されています。
AIエンジニアとは?
AIエンジニアとしての働き方は様々ありますが、ここでは機械学習エンジニアに焦点を置いて参考になる記事を紹介します。
機械学習を「社会実装」するということ
「ほとんどの機械学習プロジェクトが社会実装されずに終わる」という状況が多い中で、実際に社会実装まで到達した実例とその具体的な取り組みを詳細にまとめた資料です。実務のリアルを肌で感じることができます。
機械学習を実用化するエンジニアリングスキル
そもそも「機械学習で解決した方が良い課題」とそうでないものがあることを整理しています。その上で、機械学習エンジニアになるための(機械学習を実用化するための)エンジニアリングスキルがまとまっています。
機械学習エンジニアが目指すキャリアパスとその実話
機械学習エンジニアって「PythonとはPyTorchとかが使えればいいんでしょ?」という考え方に一石を投じた資料です。目的意識の重要性に気付かされます。
1|AI基礎
プログラミング基礎
マインドセット
「自分で調べる」「英語情報に触れる」「公式ドキュメントを見る」など基本的な姿勢をおさえましょう。
誰も教えてくれないググり方
最近はPerplexityなど検索特化型AIなども登場してきましたが、自分で検索する力:『ググり力』は重要です。同じ情報を調べるときでも人によってかなり差がついたり、正確な情報にたどり着けるのか、など変わってきます。
Python関係のググり方Tips集
AI系の開発ではPythonやPython系のライブラリを使用します。
Python系でググる時に検索効率が上がるTips集をまとめた記事です。
RTFM
Read The F**king Manual !
「マニュアルを読みやがれ!」というスラングです。
AI系に限らず、エンジニアは公式ドキュメントを読みにいく姿勢が重要であることを反映した方言ですね。
強いエンジニアのなり方 - フィードバックサイクルを勝ち取る -
つよつよエンジニアになる人の特徴を整理した記事です。「読解力がある」「目的意識が強い」のような特徴について記載されています。
後半で、「強くなるには?」をテーマに、著者自身の経験をもとに記載されています。
Python学習
AI開発ではPythonの使用が一般的です。基本的な文法をまずは押さえましょう。下記に学習を進める上で役立つ資料をまとめています。
Pythonチュートリアル
“RTFM”…ではありませんが、公式ドキュメントを見るのはやはり重要です。
日本語で書かれていて読み進めやすいです。
Pythonプログラミング入門
東京大学が公開している「Pythonプログラミング入門」という教材です。
基本的な文法からファイルへの入出力、正規表現などの操作まで丁寧に解説されています。練習問題(解答付き)もあるので、自習教材として非常に有用です。
▼ PDF版はこちら
▼ Google Colabはこちら
ProgateのPython講座
レッスン形式で基礎から順番に学んでいくことができます。
朝飯前に学べる!便利なPythonのヒント100選【前編】
“100 Helpful Python Tips You Can Learn Before Finishing Your Morning Coffee”という記事の和訳記事です。
様々なPythonの便利コマンドがまとまっています。「そもそもどんなコードが便利で使われているのか」という感覚を身につける目的でも使用可能です。
データサイエンス基礎
機械学習では、データの可視化、前処理などの技術は欠かせません。特に、Numpy、Pandas、Matplotlibは使用頻度が非常に高いので一通り使えるようになっておきましょう。
包括的にデータサイエンスを学ぶなら
全体像を押さえつつ一通り学ぶのであれば、下記の講義や演習がおすすめです。
GCI(東京大学グローバル消費インテリジェンス寄附講座)
データサイエンスを包括的にインプットするならこちらがおすすめ。
東大松尾研が開講しているデータサイエンス講座。データ分析の流れを、実際に手を動かしながら学ぶことができます。無料で受講できる講座の中ではトップクラスに質が高いです。
半期に一回(春と秋)に開講しており、学生は無料で受講することができるのでおすすめです(事前申し込みが必要)
データサイエンス100本ノック(構造化データ加工編)
構造化データを対象にした100本ノックです。ここまで学んだ内容の総集編的にチャレンジしてみるといいでしょう。全て完了すれば構造化データの加工についての基本はマスターしたと言えそうです。
Macでデータサイエンス100本ノックを動かす方法
タイトルの通り、Macでデータサイエンス100本ノックを動かすための方法が丁寧に解説されています。
100本ノックのセットアップ自体は公式GitHubに書いてありますが、仮想環境の構築など、初めての人にとっては意外と大変なものです。
記事の通りに取り組めば、環境構築の経験がほとんどない人でも、データサイエンス100本ノックにチャレンジできます。
データサイエンス初学者にむけた、データサイエンス100本ノックを実装する方法(windows10 Home向け)
データサイエンス100本ノックをWindows上で動かすための手順をまとめています。
また、データサイエンスの全体ではなく、個別に必要な知識やスキルを詳細に学ぶなら下記に紹介する資料がおすすめです。
Numpy学習
Numpy公式ドキュメント
NumPyの公式ドキュメントです。多次元配列の扱いや機械学習で使用するscikit-learnなどを使うために使用に慣れておくと良いです。
100_Numpy_exercises
Numpyの100本ノックです。様々な処理の問題を扱いながらマスターしていきましょう!
Pandas学習
Pandas公式ドキュメント
Pandasの公式ドキュメントです。csvデータを読み込んで欠損処理やデータ結合など様々なデータ処理を行う目的で使用されます。機械学習モデルに入力するデータの前処理や可視化で使用されるシーンが多いです。
Python初学者のためのPandas100本ノック
Pandasの基本的な処理からはじまり、データ加工、連結、可視化、Kaggleの問題を題材にしたデータ加工まで実践することができます。プログラミングは手を動かして慣れることが一番いいので、量をこなして習得しましょう。
Matplotlib学習
Matplotlib公式ドキュメント
Matplotlibの公式ドキュメントです。データを可視化する際によく使用します。
Google Colabでは、Matplotlibを使ってプロットすると、notebook上に描画結果がデフォルトで描画されます。簡単にデータを可視化して操作する際にはColab上で実行するのはおすすめです。
機械学習
非Deep系の機械学習に関してのコンテンツです。
scikit-learnやLightBGMなどを使ってモデル構築、学習、推論ができることを目指しましょう。
AI系のインターンに関心があるなら、時系列データを使ったデータ分析タスクに取り組んでみるのをお勧めします。
包括的に機械学習を学ぶなら
Pythonではじめる機械学習―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎
機械学習の王道ライブラリであるscikit-learnを活用して機械学習の手法を学んでいきます。本格的な深層学習に入る前段階で、機械学習の基礎や「特徴量エンジニアリング」「モデルの評価方法」などを押さえておくと、深層学習への移行がスムーズになります。
パターン認識と機械学習 上
言わずと知れた定番本です。順序立てて非常に丁寧に解説されていますが、数式を追っていく必要があるので「微積」「線型代数」「基礎統計」の知識があった方が読み進められると思います。
パターン認識と機械学習 下
上記の後編です。
よく使用するモデルやライブラリについての理解を深めたい方は下記が参考になります。
scikit-learn学習
scikit-learn公式ドキュメント
Pythonの機械学習ライブラリであるscikit-learnの公式ドキュメントです。このドキュメントでは、データを活用してモデルの学習(訓練)を行った後に、モデルの評価を行うという流れを体験することができます。
LightGBM学習
LightGBM公式ドキュメント
LightGBMのPython向け公式ドキュメントです。Light Gradient Boosting Machine(LightGBM)は、決定木とアンサンブル学習のブースティングを組み合わせた勾配ブースティングの手法です。「一般的な機械学習モデルの中で精度が高い」「モデルの訓練コストが比較的低い」というメリットがある一方で「過学習に陥りやすい」というデメリットもあります。
LightGBMのパラメータチューニングまとめ
LightGBMは大量のハイパーパラメータを持っており、これらのパラメータを適切にチューニングすることがモデルの精度向上につながります。
XGBoost学習
XGBoost 公式ドキュメント
XGBoostはアンサンブル型学習の一種の勾配ブースティング回帰木です。「計算速度が速い」「大規模データセットやスパースな特徴空間での処理に向いている」「前処理に気を使わなくとも一定高い精度を出力できる」のような特徴があり、幅広いシーンで活用されています。
XGBoostのパラメータチューニングまとめ
LightGBM同様、パラメータチューニングがモデルの精度を大きく左右するため非常に重要です。
XGBoost論文を丁寧に解説する(1)
データ分析コンペなどでよく使われるXGBoostの論文を数式や図解を交えながらわかりやすく解説してくれています。
深層学習
深層学習の学習用コンテンツをまとめました。ゼロつく(ゼロから作るDeep Learning)を活用して、実際に手を動かしながら深層学習の概要と基礎を理解しましょう。
さらに、PyTorchなどのフレームワークなど実際に手を動かしながら学んでいくのがいいです。
学生であれば、東大松尾研が公開している「DL基礎」は無料で体系的に深層学習を学べるので参考にしてみてください(※ 毎年春に開講しています)
包括的に深層学習を学ぶなら
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
名著です。
外部のライブラリを使わずにPythonで”ゼロから”深層学習モデルを作ります。その過程で深層学習の基礎(誤差逆伝播法、CNNなど)が実装レベルで理解可能です。
ゼロから作るDeep Learning ❷ ―自然言語処理編
上記の続編です。自然言語処理にフォーカスして、実装レベルで理解を進めることができます。
東大松尾研「DL基礎」
データサイエンスの部分紹介した「GCI」と同様に外部向けに開講している講座の深層学習verです。
ニューラルネットの基礎から、画像・自然言語処理など各分野の深層学習や最先端のAIについて体系的に学習できます。
理論を学びつつ実際に手を動かして理解を深めることができます。
毎年春に開講していて、学生は無料で受講することができます。
また、ライブラリや個別の分野に特化して学ぶ場合は下記がおすすめです。
PyTorch
PyTorchチュートリアル(日本語翻訳版)
PyTorchの公式ドキュメントです。PyTorchはPythonべーすの深層学習ライブラリです。GPU上で高速計算処理が可能で、深層学習モデルのモデル構築・学習・推論で使用されることが多いです。
ビジネス現場でもかなりの割合で使用されている印象です。
Google Colab上で実際に手を使いながら学ぶことができます。
Chainer
Chainer公式ドキュメント
Chainerの公式ドキュメントです。Google Colabにコード付きの解説も用意されているので、実際に手を動かして学ぶことができます。
まずは公式ドキュメントをやってみるのがおすすめです。
【機械学習】ディープラーニング フレームワークChainerを試しながら解説してみる。
実際に手を動かしながら学ぶ流れを記事にしてくれています。
機械学習プロフェッショナルシリーズ
書籍で体系的に学ぶのであれば、「機械学習プロフェッショナルシリーズ」はおすすめです。
理論的な部分をしっかり書かれており、読み応えがある内容ですが各分野の深層学習に対する理解を深める上では良いと思います。
画像処理系
画像処理100本ノック
画像処理系タスクの前処理をひたすら練習できます。以前までは日本語版のサイトが公開されていましたが、サイト自体が削除されてしまっているようです。英語版ですが、こちらは現在も利用でいるのでぜひチャレンジしましょう。
音声処理系
音声情報処理n本ノックを目指して
音声処理系のタスクに大量に取り組めます。一部完成していないものもありますが、基礎を練習する上では問題ないかと思います。
Google Colab上で実行できるファイルも用意されているので、環境構築なしですぐにチャレンジすることが可能です。
自然言語処理系
言語処理100本ノック
自然言語処理に関する処理をひたすら練習できます。正規表現など基本的なものから、「ニュース記事のカテゴリ分類」を題材として機械学習系のタスクに取り組むことまでできます。
強化学習系
誰でもわかる強化学習
初学者向けに強化学習について分かりやすく解説されている資料。強化学習の基本である「Q学習」から始め、それの深層強化学習版についてもまとめられています。
強化学習の基礎と深層強化
「強化学習ってなに?」という方にはこちらもおすすめです。手法を体系的に整理したり、基礎から最近のアルゴリズムまで一気通貫で学びたい方にはおすすめです。
これから強化学習を勉強する人のための「強化学習アルゴリズム・マップ」と、実装例まとめ
数多ある強化学習について「どんなアルゴリズムがあるのか」「どういう順番で学習するといいか」に関する強化学習の勉強ロードマップとしてまとめた記事です。
図解や動画を使って視覚的理解も深めることができます。
LLM・Generative AI
2023年始めごろから、LLMや生成AIのサービスが社会実装されています。
ここでは生成AIの技術を基礎から学びたい方、実際に使ってみたい方それぞれに向けておすすめの学習コンテンツを紹介します。
AIの進化と日本の戦略
ChatGPTの学習方法など仕組みの部分について解説されています。非常に分かりやすくまとまっているので概要をサクッと掴むにはおすすめです。
▼ 元記事
Retrieval-based LM(RAG system)をざっくり理解する
RAGシステム構築についてその概要を掴むことができます。AIエンジニアインターンでもRAGに関するシステム開発を担当する可能性もあるので、一度概要を押さえておくと良いかと思います。
面倒なことはChatGPTにやらせよう
実生活で使えるChatGPTの事例を通じて、生成AIに対する理解を深めることができます。かなり平易に書かれているのでAIやLLMの初学者でも読み進めることができます。
ちなみに、著者のからあげさんの開発系の記事は勉強になるものが多いので個人的にもおすすめです。
その他
機械学習のパラメータチューニングを「これでもか!」というくらい丁寧に解説
機械学習のタスクに取り組んでいるとほぼ必ずやることになる「ハイパラチューニング」。
この記事はその具体的なテクニックよりも、初学者も体系的に理解できるような丁寧さを追求した記事です。
「何のためにパラメータチューニングをするのか」「チューニングの手順とアルゴリズム一覧」「Pythonでの実装例」を通じて学ぶことができます。
Optunaハンズオン
Optunaとは、機械学習のハイパーパラメータの最適化を自動化するためのフレームワークです。
AI系では非常に有名なPreferred Networks社が開発しています。
Optunaハンズオンは、Google Colabで実行できるNotebookが提供されているので手を動かしながら概要を掴むことができます。
Optuna入門
Optunaをシングルプロセスで実行するための手順について解説されています。
Wights & Biases Documentation
深層学習、機械学習系の開発や実験管理を容易にしてくれるプラットフォームです。
実験の管理を容易にしてくれるサービスです。「WandB」と呼ばれることが多いです。
DVC Documentation
DVCとは、機械学習系のプロジェクトの「データ」のバージョン管理ツールです。
Gitと一緒に使用することでデータセットやモデル等のバージョン管理が可能です。
DVC Documentationは、そんなDVCの公式ドキュメントです。
Kaggleで勝つデータ分析の技術
データの前処理、モデルの精度上げについて学べます。Kaggleなどのコンペに出る人も、AI系インターンなどでデータサイエンスや機械学習を活用する方も一読をお勧めします。
2|ソフトウェア開発基礎
AIエンジニアとして活動するためにはAI技術の習得だけでは不十分です。
ほぼ100%ソフトウェアエンジニアスキルが必要になります。
一旦AI系を習得した後でもいいですが、なるべく同時並行で準備を進めておくと良いでしょう。
本記事では、「チーム開発で必要」「一般的に必要」なものに分けて紹介します。
チーム開発基礎
実務(就職・長期インターン)では、基本的にチームでの開発となります。
チーム開発では、複数人で一つのプログラムを構築します。
そのため個人開発では問題になりにくいコードの変更履歴管理などに気をつける必要があります。
求人の応募要件でもチーム開発に関する知識を求められることも多いので、最低限知識として押さえておくようにしましょう。
チーム開発系では、
- Git・GitHub
- クラウド(GCP・AWSなど)
- 仮想化(Docker・VirtualBoxなど)
について押さえておくと問題ないです。
Git・GitHub
チーム開発を行う上で(ほぼ)必須のスキルです。記事や動画を参考にして実際に手を動かしながら学ぶことをお勧めします。
サル先生のGit入門〜バージョン管理を使いこなそう〜
実際に手を動かしながら要領を掴むことができます。基本的な操作やチーム開発で必要になるプルリクエストなどについても学べます。
いまさらだけどGitを基本から分かりやすくまとめてみた
Gitを使いこなす上で必要な基礎知識やコマンドを整理した記事です。
Git+GitHub入門
動画で視覚的に学びたい方はYouTubeで学ぶのも良いでしょう。エンジニアの方が解説をしています。
クラウド
AI系のプロジェクトでもAWSなどのクラウド環境を利用することは非常に多いです。使いこなすまではいかなくとも、どのようなものなのかがわかっている状態だと非常にスムーズに業務に入れると思います。
AWSによるクラウド入門
東大工学部の計数工学科で実際に開講されている講義の資料です。非常に実践的な内容になっています。クラウドをこれから学んでいきたい方におすすめです。
※ AWSは無料枠がありますが、それを超えると料金が発生するので注意してください。
GCP入門編
「Google Cloud Platform(GCP)とは何か?」「どのような機能群があるのか?」について学ぶことができます。
Google Cloud をゼロから学ぶならこれ! おすすめの学習リソース
「Google Cloudを使ってみたいけど何から始めればいいのかわからない」という方にお勧めできる記事です。何をどういうふうに学んでいくと良いのかと目星がつけれると思います。
Docker
チームプロジェクトでは、誰の環境で実行しても常に同じ動作をするための「仮想環境」を構築することが重要です。例えば、機械学習モデルをローカルで動かすときに個々人の環境で違う動作をしたりエラーが起きることを防ぐ目的で使用します。
一度学んでおけばずっと使える知識なのでインプットしておきましょう。
Docker公式ドキュメント
Dockerの公式ドキュメントの日本語版です。
▼ 英語版はこちら
Dockerを体系的に学べる公式チュートリアル和訳
この記事をAI系の研究室の最初の研修で使用するところもあるほどです。
実際に手元(ローカル)でDockerを起動してみましょう!
【図解】Dockerの全体像を理解する -前編-
Dockerの基本(イメージ、コンテナなど)から、docker-compose、docker-machineなどDocker周辺の概念の全体像を掴むことができます。
VirtualBox
いまさら聞けない!Virtualboxとは何か?基礎の基礎を解説!
仮想マシンの一つであるVirtualBoxを使うと、複数のOSを仮想環境上で動かすことができます。例えば、Mac環境のPCでWindowsやLinuxを導入可能です。この記事ではセットアップ方法を学ぶことができます。
【初心者必見】Linuxをインストールする方法〜導入編〜
VirtualBoxを使って、MacのPCでLinux(Ubuntu)をインストールする手順を解説しています。
VirtualBoxへのDebian GNU/Linuxのインストール
ステップバイステップでVirtualBoxのインストールから、GNU/LinuxのVirtualBox上へのインストールまで手を動かしながら概要を掴むことができます。
ソフトウェア基礎
こちらでは、チーム開発/個人開発に関わらず必要となるものを紹介します。
- エディタ(IDE)
- Linuxコマンド
- データベース
に関して理解をしておくと十分です!
それぞれ解説をしていきます。
エディタ
エディタ(特にIDE)はソースコード編集、コンパイル、デバックなどの機能を搭載したソフトウェアです。最近ではVSCodeやそのAI搭載版のCursorを使用している方が多い印象です。
Visual Studio Code
“VS Code”と呼ばれています。無料で使える上、拡張機能も豊富なのでおすすめです。
VSCode に必ず入れておきたい拡張機能
VSCodeのおすすめの拡張機能をまとめた記事です。
【2023年最新版】VSCodeをPython超特化型にする 最高の拡張機能20選まとめ。【VisualStudio Code】【プラグイン】
AI開発、機械学習などのプロジェクトに関わる際に必須レベルのプラグインと、入れておくと作業効率が上がるおすすめプラグインを紹介した記事です。
PyCharm
無償版と有料版があります。PyCharmは機能が非常に充実しているのが特徴です。認定教育機関の大学では、無料で利用することができるので、ご自身の所属機関が該当するか確認してみましょう。
PyCharm公式ドキュメント
最強のPython開発環境 PyCharmのすゝめ
PyCharmのおすすめ機能について、具体例や画像を使いながら分かりやすく整理されています。
記事内では、「Python初心者こそPyCharmを使ってほしい」とお勧めされています。
Jupyter Lab
EDA(探索的データ解析)などの用途で使用する時に活用するイメージです。
※ EDA:https://www.codexa.net/basic-exploratory-data-analysis-with-python/
JupyterLabのすゝめ
データ分析系の業務で使う人が多いJpytarLabについて特徴や使い方を整理した記事です。画像や動画で実際の動作の様子を確認することができます。
図解!Jupyter Labを徹底解説!(インストール・使い方・拡張機能)
JupytarLabのインストール手順がまとまっています。
Google Colab
データ分析・可視化などでサクッとコードを動かしたい時に便利です。
また、GPUを無料で利用できるので深層学習の目的での利用も可能です。(一度に大量に利用はできないので、あまり大きな学習には向いていません)
手元での環境構なしですぐに利用可能なため、大学の講義などでも使用されることが多い印象です。
Vim
リモートサーバーでファイルをいじる時によく使います。
VimはLinuxのテキストエディタで、最小限のキー操作で編集が行えるのが特徴です。
はじめてのVim 〜 Vimはいいぞ!ゴリラと学ぶVim講座(1)
Vimの良さや特徴など初心者やまだ使ったことない人向けに連載形式でまとめた記事です。
Vim初心者に捧ぐ実践的入門
これからVimを使ってみようという人を対象にした解説記事です。実際に手を動かしながら雰囲気を掴むことができます。
Cursor
CursorはAIを活用したコードエディタです。コードの自動生成やエラー検出、修正などをサポートしてくれます。思った以上にコード補完などしてくれるので、初学者のコーディングに対するハードルは大きく下がります。
Linux
LinuxとはOSの一種です。インターンに関しては、Linuxコマンドを押さえておくと良いです。
次に記載するGit, GitHubと併せて、AI系長期インターンの応募要件になっていることも多いです。
【エンジニア監修】Linuxとは何か?初心者目線でやさしく解説してみた
Linuxの概要について説明されています。
UNIX/Linux入門
UNIX、Linuxそれぞれについて解説されています。コマンドやシェル変数(Bashなど)、環境変数についても一通り概要を掴むことができます。
Linux コマンド一覧表
Linuxコマンドについてまとめられています。使用頻度の高い「基本コマンド」をはじめ、システム管理系のコマンドまでまとめられています。
初心者向けシェルスクリプトの基本コマンドの紹介
「シェルスクリプトとは?」から始まり、ファイルの読み書きなど具体例を交えながら解説がされています。サクッと概要を掴みましょう。
インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識
AIエンジニアだと、リモートサーバーに保存されているデータにアクセスして機械学習を行う場面などあります。(実務だけでなく、AI系の研究室でも同様です)そのため、SSHの基礎部分は一定理解しておくことが重要です。
そんなSSHについて、基本を解説した記事です。
SSH公開鍵認証で接続するまで
その名の通り「SSH公開鍵認証で接続するまで」を手を動かして体験できます。
具体的には「①クライアントで作成したキーペアでSSH接続する」「②パスワード認証方式を無効にする」という手順で進めます。
DB(データベース)
データベースは様々あり奥が深いですが、まずはSQLの基本について押さえておけば問題ないでしょう。
やりながら学べる基本のSQL入門
MySQLでのデータベースの作成から、基本的なデータベースの操作について学ぶことができます。
【新人教育 資料】SQLへの道 〜DB編〜
SQLの全体像について仕組みと実際の動きについて学ぶことができます。演習もついているので自分の理解を確認しながら順番に進めていくことができます。
3|論文リサーチ基礎
「AI系のインターンなのに論文?」と思った方もいると思います。AI系のインターンでは最先端の論文の事例を参考に機械学習モデルを実装して評価をするプロジェクトも存在します。そのようなプロジェクトでは、テーマを絞って論文を調査したり、論文に記載されているモデルを実装(再現実装)することが求められます。
なので、論文の検索方法や読み方を知っておくことは非常に重要です。参考になる情報をまとめたので確認してみてください。
AI系の学会一覧
国内外の学会に関する情報がまとまっています。各分野のトップカンファレンスの名前は把握しておくと良いでしょう。AI系に関する学会は下記を押さえておくと良いです。
論文検索
Google Scholar
論文検索の王道です。Googleが提供する論文検索サイト。
arXiv
読み方は「アーカイブ」。arXivは、査読公開前の論文を公開できるサイトで、コンピュータサイエンス、数学、物理学などの分野の論文が大量に集まっています。
AI(DeepLearning)系の論文も多数公開されています。
arXivTimes
arXivTimesは機械学習系の論文を調査し、共有するためのリポジトリです。
Paper with code
実装コード付きの論文をまと待っているサービスです。現時点での最高性能のモデルに絞って検索することも可能です。
CiNii
日本語で書かれた論文を検索するときにおすすめです。分野を問わず網羅的に検索することができます。
論文の読み方・書き方イロハ
落合フォーマット【高速で論文がバリバリ読める落合先生のフォーマットがいい感じだったのでメモ】
論文の読み方そもそもを工夫することでインプット / アウトプットの効率が非常に良くなります。
(ちなみにこのフォーマットをプロンプトにしてChatGPTで高速に論文を読み回している学生もいます)
矢谷流論文の読みかた(東大矢谷研究室)
東大矢谷研が公開している「論文の読み方」
東大の電子情報学科、電気電子工学科の学生の多くはこの論文の読み方を参考にしているらしいです。
論文の書き方(東大教授 松尾豊氏)
東大 松尾研の教授 松尾豊先生による論文の書き方。
書き方に関するHow toですが、書き手の視点を知ることは、論文を読み進めることにも役立つのであえて記載しました。
4|おまけ
ここまではAIエンジニアの実務を始めるために必要な要素を網羅的にまとめました。
ここまでの内容を一通り押さえておけばまず問題なくチャレンジできます。
下記は、他に役立つ情報源やもっと基礎的な内容から学びたい人向けの情報などをまとめています。ぜひ参考にしてください。
コンピュータサイエンス系の海外大学講義
AIに限らず、エンジニアとしての入門で使える有益コンテンツです。
MITの講義(英語)
英語での記事ですが、頑張って読むかChatGPTなど使いながら読み進めていきましょう。
ハーバードの講義(和訳)
「CS50 for Japanese: コンピュータサイエンスの入門」。経験者・未経験者それぞれ対象としています。
YouTube
Alcia Solid Project
数学科出身のデータサイエンティストが深層学習・データサイエンスの解説をしています。
Vtuberです。見た目もかわいいし、勉強になるので一石二鳥(?)です。
nnabla ディープラーニングチャンネル
深層学習の論文の解説を動画でしているチャンネルです。視覚的に理解したり、概要を掴む助けになります。
コンペ・コンテスト
「実務とコンペは違う」と言われることは多いですが、AIを学び始めて学習の成果を確かめる題材としては非常に有用だと思います。積極的にチャレンジしましょう。
Kaggle
言わずと知れた機械学習のよ世界規模のコンペです。Kaggleを通じてレベルアップを目指すなら、先ほど紹介した「Kaggleで勝つデータ分析の技術」がおすすめです。
SIGNATE
Kaggleの日本語verのイメージです。チュートリアルが日本語のため、初めてコンペにチャレンジする場合はKaggleではなくSIGNATEから始めてみるのもおすすめです。
Nishika
SIGNATE同様、日本語の機械学習モデルのコンペサービスです。
AtCoder
機械学習ではなく競技プログラミングのコンテストサイトです。アルゴリズム中心で
オーソドックスなコンテスト(AtCoder Begineer Contest)ではエンジニア就活のコーディングテストに近い形式の問題が6問出題され、その解答スピードと正答数を競います。
余談ですが、競プロの発祥はAtCoderではなく「東京大学の競技プログラミング同好会」です。
プログラミングスクール
42Tokyo
フランス発のエンジニア養成機関です。試験があり、その合格水準が高いことで有名です。入学すれば、完全無料かつ夜間も利用可能なため、泊まり込みで学習を進めている猛者もいるとのことです。
42Tokyoでは、C言語を扱います。メモリの理解などプログラミングの基礎的な部分の理解を深めることができるので、エンジニア戦闘力が上がります。
エンジニア新人研修資料
各企業のエンジニア研修資料
近年、新卒エンジニア対象の社内向け研修資料を一般公開する企業が増えています。実際の研修コンテンツということもあり、質が高いものが多いです。
こちらからご覧いただけます。
【2024年度】エンジニア向け研修資料まとめ
無償で公開されているエンジニア研修資料をまとめたQiita記事です。各資料について概要の説明もあるので、自分に合う記事を選んで覗いてみるといいと思います。
基礎数学・基礎統計
機械学習・深層学習のモデルやデータ分析には基礎数学や統計学に対する理解が重要です。
自身の習熟度に応じて必要な部分を習得していきましょう。
高校数学の美しい物語
高校数学について分かりやすくまとまっています。特に微積・極限・線形代数について学んでおくと良いと思います。
人工知能プログラミングのための数学がわかる本
数式への苦手意識がある方にとってもとっつきやすい内容で書かれています。必要最低限の知識を身につけた上でより専門的な内容に進んでいくと良いです。
プログラマのための ディープラーニングのしくみがわかる数学入門
数式をコーディングから学ぶ形式で、よりプログラミング的な立場から数式を理解することができます。
学習ロードマップ
人工知能・深層学習を学ぶためのロードマップ
AI系で有名な東大松尾研が公開しているAI学習ロードマップです。
人工知能や深層学習を学んだことがない人を対象に、ゼロから学習するためのロードマップが公開されています。学生向け・社会人向けそれぞれに「10時間コース」「200時間コース」の学習ロードマップが準備されており、自身の状況に合わせて学ぶことができます。
5|まとめ
いかがだったでしょうか。
今回の記事ではつよつよAIエンジニアになるための学習コンテンツをまとめました。もちろん全てのコンテンツをやり切る必要はありません。重要なのは、「実務に必要なのはAIの基礎知識だけではない」と認識することです。その上で自分に必要な部分を集中的に学んでいくと良いです。
GEEK OFFERではTwitterでエンジニア学生の役に立つ情報をお届けしているのでぜひチェックしてみてください!
※ 記事の中で誤表記や掲載をやめてほしいリンクがある、こんなコンテンツも紹介してほしいなどのご要望があればご連絡ください。