【2023年版】機械学習の日本語無料学習教材まとめ

# はじめに
- これからPython・機械学習を本格的に身に着けたい方
- コストをかけずに、お試しで学習してみたい方
- 英語よりも、なるべく日本語の教材で勉強したい方

以上の方に向けて溢れんばかりの無料のWeb教材をまとめました。
<br><br>
弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。
また、Nucoでは一緒に働く仲間も募集しています！興味をお持ちいただける方は、[こちら](https://www.recruit.nuco.co.jp/?qiita_item_id=ff36b82e37d0c4ccc073)まで。

# 機械学習、人工知能とは何ぞやの方へ

「プログラミングは初めて。。。」という方でも、思い立ったが吉日。
無料教材を傍に、とにかくコードを書いてみましょう！
また、レベル感がわかるようにコメントし、初学者でない方にも有用な内容になるよう努めました。

準備段階として、「言語 & 開発基礎編」「学問編」「環境構築編」を用意しました。機械学習編は一番最後のセクションです。
Pyhtonやエディタのことは大体わかってるぜ！という方は下記の表から早速「いよいよ機械学習編」に飛んでください。
プログラミング初学の方は一旦、先述の準備段階に相当する内容を理解してから「いよいよ機械学習編」コーディングの学習に移ることをお勧めします。

| |
|:-------------|
| [言語 & 開発基礎編](#言語開発基礎編) |
| [学問編](#学問編) |
| [環境構築編](#環境構築編) |
| [いよいよ機械学習編](#いよいよ機械学習編) ←機械学習・DL教材はこのセクションから！|

<br>

散々四方で聞き飽き見飽きたかもしれませんが、今一度「機械学習ってなんだっけ？」をおさらいしたい方は[こちら](https://www.codexa.net/what-is-machine-learning/)の記事がわかりやすいです！

また、各教材ごとに難易度をつけました。参考の一助としてください。


|難易度　|目安　　　　　　　　　　|備考|
|:-:|:-:|---|
|★☆☆|入門的な内容|取り組みやすさ、初学者へのわかりやすさなども加味しています。|
|★★☆|基礎的な内容|演習問題主体の教材で、基本知識を前提としているものは「難易度: ★★☆」。|
|★★★|応用、発展的な内容|内容が難解というよりも、「知っておくと得」や「ある程度勉強した人にとって役立つ情報」という位置付けであることをご理解ください。|






# 言語&開発基礎編
PythonやSQLなどの言語と開発環境に関連することをまとめました。
機械学習に関する教材はこの次のセクションにまとめてあります。

### 学習環境
インストール及び使い方チュートリアルのサイトと、ある程度使い慣れた後に役立つtips集を各エディタでまとめました。

#### Google Colaboratory　
Python初学者にとって最もわかりやすいPython実行環境です。プログラミングは初めて！という方はまずこのGoogle Colaboratory(通称: Colab)から始めてみて、使い方がある程度わかったら、そのまま次のセクションの[Python編](#python)に移りましょう。
<br><br>

- [Pythonプログラミング入門](https://utokyo-ipp.github.io/)

https://utokyo-ipp.github.io/

難易度: ★☆☆
東京大学の公開しているPython講座ですが、冒頭でColabの使い方を解説しています。使ったことのない方はこちらから！

<br><br>


- [Google Colabの知っておくべき使い方 – Google Colaboratoryのメリット・デメリットや基本操作のまとめ](https://www.codexa.net/how-to-use-google-colaboratory/)


https://www.codexa.net/how-to-use-google-colaboratory/

難易度: ★★☆
GPUやパッケージバージョン変更方法などについて触れています。

<br><br>


- [Google Colabで知られていないが有用な機能7選](https://atmarkit.itmedia.co.jp/ait/articles/2205/16/news029.html)

https://atmarkit.itmedia.co.jp/ait/articles/2205/16/news029.html

難易度: ★★☆
pandasで簡単に列入れ替え、フィルタリング等を可能にするインタラクティブ・テーブルの利用法など、colabを最大限活用できる情報が目白押しです。

<br><br>


- [Google ColabユーザーのためのTipsトップ10](https://atmarkit.itmedia.co.jp/ait/articles/2003/17/news019.html)

https://atmarkit.itmedia.co.jp/ait/articles/2003/17/news019.html

難易度: ★★★
    こちらもtips集。tensorflowバージョンの簡単な指定方法やVM(仮想マシン)を利用したスピードアップの方法など。。。

<br><br><br>


#### Jupyter Lab
GoogleChromeなどのブラウザ上でプログラムの記述と実行ができるのが、Jupyter Labの特徴です。
<br><br>

- [図解！Jupyter Labを徹底解説！](https://ai-inter1.com/jupyter-lab/)

https://ai-inter1.com/jupyter-lab/

難易度: ★☆☆
Jupyter Labだけをインストールするやり方に加えて、Anacondaと一緒にインストールするやり方が紹介されています。最低限の使い方解説もあります。

<br>
<br>

- [Jupyter 知っておくと少し便利なTIPS集](https://qiita.com/simonritchie/items/d7dccb798f0b9c8b1ec5)

https://qiita.com/simonritchie/items/d7dccb798f0b9c8b1ec5

難易度: ★★★
ある程度使い方に慣れた方はこちら。目次自動作成、検索と置換、HTML自動保存などを解説。

<br><br><br>


#### PyCharm
Python特化の統合開発環境(IDE)です。有料版のProfessional、無料版のCommunityとEducational（プログラミング初学者向け）がありますが、無料版でも十分すぎるほど高機能です。UIも洗練されています。
<br><br>

- [PyCharm（パイチャーム）とは？5つの特徴や導入する流れ、便利な機能を紹介](https://hnavi.co.jp/knowledge/blog/pycharm/)

https://hnavi.co.jp/knowledge/blog/pycharm/

難易度: ★☆☆
よりPyCharmを詳しく知りたい方に。

<br><br>


- [【初心者向け】PyCharmの使い方(新規プロジェクト作成～実行まで)について解説](https://python-hack.net/how-to-use-pycharm/)

https://python-hack.net/how-to-use-pycharm/

難易度: ★☆☆
インストール後、プロジェクト作成から実行までの使い方を解説する。PyCharmのインストールは[こちら](https://pleiades.io/help/pycharm/installation-guide.html)から。

<br><br>

- [最強のPython開発環境 PyCharmのすゝめ](https://qiita.com/pashango2/items/de342abc10722ed7a569)

https://qiita.com/pashango2/items/de342abc10722ed7a569

難易度: ★★☆
より具体的な便利性について言及されている。ある程度使い慣れた方向け。

<br><br>


- [PyCharm：６ヵ月使って分かったオススメの使い方【Gif動画付き】](https://www.yutaka-note.com/entry/pycharm001)

https://www.yutaka-note.com/entry/pycharm001

難易度: ★★☆
同じくある程度使い方がわかった方向け。

<br><br><br>



### Python

#### Python

- [Python | プログラミングの入門なら基礎から学べるProgate](https://prog-8.com/courses/python)

https://prog-8.com/courses/python

難易度: ★☆☆
初めて学ぶ方へ。ポップなのはこれ。めちゃくちゃ易しいのできっと挫折しないです！

<br>
<br>

- [Pythonプログラミング入門](https://utokyo-ipp.github.io/)

https://utokyo-ipp.github.io/

難易度: ★☆☆
東大が自習用に公開している無料教材。内容は充実していますが、それだけにボリュームはなかなかのもの。飽きないように手を動かしながらやりましょう。

<br>
<br>

- [公式ドキュメント](https://docs.python.org/ja/3/)

https://docs.python.org/ja/3/

難易度: ★★☆
公式ドキュメントというものをご存知ですか？
Python公式が出したPythonの取扱説明書です。Python公式ドキュメントに限った話ではないですが、これから先、日本語情報の少ないライブラリやツールを使い、情報に行き詰まった際は、公式の取扱説明書の存在を思い出してください。下手に外国語のサイトをGoogle翻訳するよりも、公式ドキュメントを英語で読んだ方が早いということもあります。多くの場合、初学者にとってハードルは高いですが。。。

<br>
<br>


- [Pythonチュートリアル](https://docs.python.org/ja/3/tutorial/)

https://docs.python.org/ja/3/tutorial/

難易度: ★★☆
公式が公開するチュートリアルです。

<br>
<br>


- [朝飯前に学べる！便利なPythonのヒント100選【前編】](https://qiita.com/baby-degu/items/05cf809d4d992923020d)

https://qiita.com/baby-degu/items/05cf809d4d992923020d

難易度: ★★★
`==` と `is`の違いはなんでしょうか？基本がバッチリな方はPythonを使いこなす更なるtipsを探すのもいいでしょう。

<br>
<br><br>



#### NumPy

NumPyはベクトルや行列などの多次元配列を扱うデータ分析においては、必須のライブラリです。

<br>
<br>


- [NumPy入門 - AI Academy](https://aiacademy.jp/texts/show/?id=21)

https://aiacademy.jp/texts/show/?id=21

難易度: ★☆☆
さっくり学べます。とにかく一緒にコードを書きましょう。

<br>
<br>


- [【NumPy徹底講座】この動画1本で数値計算に特化したPythonライブラリNumPyの基礎をマスター！](https://youtu.be/ZQZ38rK28Gk)

https://youtu.be/ZQZ38rK28Gk

難易度: ★★☆
演習問題20問。知識の定着には演習が効果的です。実際に打ったメソッドは忘れにくい!

<br>
<br><br>



#### Pandas
Pandasはデータ解析用のライブラリでテーブルをデータフレームという形式で扱います。

<br>
<br>


- [Pandas入門 - AI Academy](https://aiacademy.jp/texts/show/?id=23)

https://aiacademy.jp/texts/show/?id=23

難易度: ★☆☆
さっくり学べます。とにかく一緒にコードを書きましょう。


<br>
<br>


- [【Pandas徹底講座】この動画1本でデータ操作に特化したPythonライブラリPandasの基礎をマスター！](https://youtu.be/ZQZ38rK28Gk)

https://youtu.be/ZQZ38rK28Gk

難易度: ★★☆
演習問題20問の動画。

<br><br>
<br>



#### Matplotlib
グラフ描画のためのライブラリです。NumpyやPandasが使えるようになってから学習しましょう。

<br>
<br>


- [Matplotlib 入門](https://tutorials.chainer.org/ja/12_Introduction_to_Matplotlib.html)

https://tutorials.chainer.org/ja/12_Introduction_to_Matplotlib.html

難易度: ★☆☆
散布図やヒストグラム、折れ線グラフ等を作ります。各グラフの描画メソッドを暗記するというよりは、使い方の雰囲気を掴みましょう。



<br>
<br>


- [Pythonでデータ可視化（Matplotlib）を勉強するならまずこの動画で特訓](https://youtu.be/bsYJ3hTvx7c)

https://youtu.be/bsYJ3hTvx7c

難易度: ★★☆
演習問題20問の動画。

<br>
<br><br>

 
#### Scipy
科学技術計算のライブラリです。NumPyと組み合わせて使います。NumPyにない計算を補うような位置付けです。機械学習では音声認識などに使われることが多いです。

<br>
<br>


- [【SciPy入門】科学技術計算の使い方](https://algorithm.joho.info/programming/python/sample-code-scipy/)

https://algorithm.joho.info/programming/python/sample-code-scipy/

難易度: ★☆☆
定積分や順列など、基本的な科学計算の他、「画像の読み込み」・システムの「状態方程式」などの応用的な章立てもあります。


<br><br>

- [【SciPy】科学技術計算パッケージ](https://python.atelierkobato.com/scipy/)

https://python.atelierkobato.com/scipy/

難易度: ★★☆
より詳しいです。ベッセル関数やルジャンドル多項式といった複素関数論などで扱う特殊関数も登場します。

<br>
<br><br>


### エディタ

#### Visual Studio Code
2023年現在、開発エディタの定番といえば、VSCodeことVisual Studio Codeでしょう。これからプログラミングを勉強する方にももちろんお勧めできます。<br><br>
- [【アニメ図解たっぷり】VSCodeの使い方入門！～ 基本からWeb制作まで](https://skillhub.jp/blogs/235)

https://skillhub.jp/blogs/235

難易度: ★☆☆
前半はVSCodeの使い方が簡潔、且つわかりやすくインストールから使い方まで触れてあります。後半はHTML, JavaScriptなどWeb開発系のことにも触れています。

<br><br>

- [VS Codeの使い方講座！日本語化する拡張機能のインストールも紹介！](https://www.youtube.com/watch?v=csOaPNMDEwg)

https://www.youtube.com/watch?v=csOaPNMDEwg

難易度: ★☆☆
動画がいい方はこちら！

<br><br>

- [【2023年最新版】VSCodeをPython超特化型にする 最高の拡張機能20選まとめ。 【VisualStudio Code】【プラグイン】](https://yurupro.cloud/767/)

https://yurupro.cloud/767/

難易度: ★★★
視覚や整形、その他Python及び機械学習うってつけの拡張機能の情報満載。

<br><br>

- [Visual Studio CodeでCSVの編集を見やすく行う拡張機能「Edit csv」](https://webrandum.net/vscode-plugin-edit-csv/)

https://webrandum.net/vscode-plugin-edit-csv/

難易度: ★★★
データ分析で使うCSVファイル。この拡張機能を使うとそのままでは見づらいCSVファイルが成形された状態で扱えます。
<br><br><br>

### Linux
- [Command Line | プログラミングの入門なら基礎から学べるProgate](https://prog-8.com/courses/commandline)

https://prog-8.com/courses/commandline

難易度: ★☆☆
「コマンドライン」と聞いて「？」となる方はまずはここからやってみましょう。初心者にも超わかりやすいです。

<br><br>


- [初心者向けシェルスクリプトの基本コマンドの紹介](https://qiita.com/zayarwinttun/items/0dae4cb66d8f4bd2a337)

https://qiita.com/zayarwinttun/items/0dae4cb66d8f4bd2a337

難易度: ★☆☆
シェルスクリプトにおける変数やif文についてのまとめ。

<br><br>

- [インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識 - Qiita -](https://qiita.com/tag1216/items/5d06bad7468f731f590e)

https://qiita.com/tag1216/items/5d06bad7468f731f590e

難易度: ★★★
SSHはリモートマシンや仮想マシンに接続する際使用されるプロトコルです。機械学習の文脈でもリモートマシンとの接続が必要な時にしばしば使われます。

<br><br>
<br>
    
### GPU
GPUは、Graphics Processing Unitの略で、画像処理を行う計算装置(プロセッサ)のことです。
画像認識AIモデルの学習の際に、CPUよりも画像処理が速いGPUを使った方が良いことがあります。

<br><br>

- [【Google Colab】GPUが無料で使える!? 基本的な使い方](https://sci-by-py.com/hpc/google-colab/)

https://sci-by-py.com/hpc/google-colab/

難易度: ★☆☆
Google ColaboratorでもGPUが無料で使えます。金銭的にも技術的にもハードルは一番低いです。

<br><br>

- [基礎からわかるGPU 性能・特徴や選び方のポイント](https://www.ntt.com/business/sdpf/knowledge/archive_05.html)

https://www.ntt.com/business/sdpf/knowledge/archive_05.html

難易度: ★☆☆
GPUとCPUの違いから、性能と消費電力などの注意点など、GPU選びの概要が説明されています。
<br><br>

- [Pythonの環境構築とSSHとCUDAを使ってGPUサーバーで機械学習をする方法](https://tech-blog.link-u.co.jp/2018/04/30/how-to-setup-python-and-cuda-for-deeplearnng/)

https://tech-blog.link-u.co.jp/2018/04/30/how-to-setup-python-and-cuda-for-deeplearnng/

難易度: ★★☆
GPUサーバを準備した後、接続と学習について触れています。

<br><br>
<br>

### データベース・SQL

- [SQL | プログラミングの入門なら基礎から学べるProgate](https://prog-8.com/courses/sql)

https://prog-8.com/courses/sql

難易度: ★☆☆
わかりやすくて、易しく学べる入門講座。前半の基本構文解説は無料ですが、後半の集計関数などの解説は一部有料です。プログラミングに慣れていない人や、SQL文をざっくり易しい解説で学びたい方は、無料パートの学習だけでも十分おすすめ。

<br><br>

- [ＳＱＬ攻略](https://sql.main.jp/)

https://sql.main.jp/

難易度: ★☆☆
プログラミングにはちょっと慣れてきたかも？？という方はこちらがおすすめ。よりスッキリした解説で、導入も含めて大体全部の構文が時短で学べます。SQL文を自分で書いて、実行結果も表示される仕様になっています。

<br><br>


- [Tech Pjin：SQL演習問題](https://tech.pjin.jp/blog/tag/sql%e7%b7%b4%e7%bf%92%e5%95%8f%e9%a1%8c/)

https://tech.pjin.jp/blog/tag/sql%e7%b7%b4%e7%bf%92%e5%95%8f%e9%a1%8c/

難易度: ★★☆
演習問題がたくさん。解答と補足説明付き。ガッツリ演習で身につけたい方はこちらをどうぞ!

<br><br>
<br>

### クラウド

#### GCP

- [クラウドGPUをディープラーニング向けに安く使う方法【GCP/AIプラットフォーム】](https://ebi-works.com/gcp-gpu/)

https://ebi-works.com/gcp-gpu/

難易度: ★☆☆
Google Cloud Platform(GCP)でGPUを使う手順を解説。2021年2月の記事なので、GCPのUIに多少の変更がある可能性があります。

<br><br>

- [Compute Engineを徹底解説！（基本編)](https://blog.g-gen.co.jp/entry/compute-engine-basic-explained)

https://blog.g-gen.co.jp/entry/compute-engine-basic-explained

難易度: ★★☆
GCPの仮想マシンサービスである Compute Engineの詳しい解説。

<br><br>
<br>

#### AWS

- [コードで学ぶAWS入門](https://tomomano.github.io/learn-aws-by-coding/)

https://tomomano.github.io/learn-aws-by-coding/

難易度: ★★☆
AWSのクラウドを実際に動かす演習形式で学びます。書籍化もされているようで、AWSを用いた機械学習を解説する章立てもあります。

<br><br>
<br>

# 学問編
データサイエンス、統計、線形代数は一通り理解されるのが望ましいです。
<br><br>

### データサイエンス

- [数理・データサイエンス・AI教育強化拠点コンソーシアム](http://www.mi.u-tokyo.ac.jp/6university_consortium.html)

http://www.mi.u-tokyo.ac.jp/6university_consortium.html

難易度: ★☆☆ ~ ★★☆
AI及びデータ活用とそれらが関わる数学、社会実装、動向などデータサイエンスを俯瞰できるスライドベースの教材。

<br><br>

- [巣ごもりDXステップ講座情報ナビ](https://www.meti.go.jp/policy/it_policy/jinzai/sugomori/)

https://www.meti.go.jp/policy/it_policy/jinzai/sugomori/

難易度: 様々
約100講座の中からカテゴリ・レベル別で講座検索が可能。ニーズに応じて検索でき、各講座ごとに概要やレベル感の軽い説明もされている。

<br><br>

- [データサイエンス100本ノック](https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess)

https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess

難易度: ★★☆
データの加工や集計、統計学や機械学習を使ったモデリングの前処理などの問題100問。

<br><br>

### 統計
- [統計学の時間 | 統計WEB](https://bellcurve.jp/statistics/course/)

https://bellcurve.jp/statistics/course/

難易度: ★☆☆ ~ ★★☆
初級編・基礎編・中級編・実践編と分かれており、内容はかなり充実しています。高校数学の「データの分析」がある程度わかる方は、タイトルで分かりそうなところはすっ飛ばしてつつ、基礎編から始めるのをお勧めします。中級編ではノンパラメトリック分析やロジスティック回帰をはじめとした突っ込んだ内容にも触れており、しっかり統計を勉強したい方にもお勧めです。

<br><br>

- [統計学 標準演習100選 〜確率、推測統計、回帰、応用、数理統計学〜](https://www.hello-statisticians.com/practice_100)

https://www.hello-statisticians.com/practice_100

難易度: ★★☆
こちらは統計の演習問題100選です。解答もついているのが嬉しいところ。

<br><br>

- [【大学数学】推定・検定入門①(母集団と標本)/全9講【確率統計】](https://youtu.be/Bj8fkq533Dc)

https://youtu.be/Bj8fkq533Dc

難易度: ★☆☆
動画の方が学びやすい方はこちら。言わずと知れたヨビノリたくみ先生の授業です。

<br><br>

### 数学
#### 線形代数
機械学習、特に画像認識とは切っても切り離せない仲にあるのが行列及びテンソルです。

- [平面ベクトルの基本 - 高校数学](https://xn--48s96ub7b0z5f.net/heimen-bekutoru-kihon/)

https://xn--48s96ub7b0z5f.net/heimen-bekutoru-kihon/

難易度: ★☆☆
高校数学のベクトルに不安がある人は平面ベクトルから見直すといいでしょう。

<br><br>

- [大学1年生もバッチリ分かる線形代数入門](https://oguemon.com/topic/study/linear-algebra/)

https://oguemon.com/topic/study/linear-algebra/

難易度: ★★☆
基礎編ののちに各論に入るので、とりあえず概要だけ知りたい人は、基礎編（とできれば線型写像編）だけ勉強して、必要に応じて各論を勉強するのもいいでしょう。

<br><br>


- [線形数学 I・II 演習問題](http://www.las.osakafu-u.ac.jp/~yamaguti/jugyo/linalg/senkei12e.pdf)

http://www.las.osakafu-u.ac.jp/~yamaguti/jugyo/linalg/senkei12e.pdf

難易度: ★★★
大学の出している演習問題です。数学全般に言えることですが、大学授業の講義ノート及び演習問題はググればたくさん見つかります。

<br><br>

- [【大学数学】線形代数入門①(概観&ベクトル)【線形代数】](https://youtu.be/svm8hlhF8PA)

https://youtu.be/svm8hlhF8PA

難易度: ★☆☆
ヨビノリ先生。

<br><br><br>

#### 微積分学
高校数学レベルの微積分に不安がある方は、やっておいた方がいいでしょう。大学数学レベルは、興味があればで良いでしょう。

<br><br>

- 高校数学の数学Ⅱの微分積分を復習したい、勉強したい場合はこちらから。
難易度: ★☆☆
    - [微分法の基本 - 高校数学](https://xn--48s96ub7b0z5f.net/category/math-2/bibun/)
    - [積分法の基本 - 高校数学](https://高校数学.net/category/math-2/sekibun/)

https://xn--48s96ub7b0z5f.net/3jikansuu-taisyo-tyokusen/


    

<br><br>


- [微積分学(大学) - 数学の景色](https://mathlandscape.com/category/analysis-univ/calculus-univ/)

https://mathlandscape.com/category/analysis-univ/calculus-univ/

難易度: ★★★
個人的には大学数学の微積分にまで手を出さないと、機械学習を実装する上でわからないということはあまりないと思いますが、テイラー展開やガウス積分などのキーワードが出てきて尚且つそれらを詳しく知りたい場合は覗いてみるといいでしょう。

<br><br><br>

#### 集合論 

- [集合と位相 - 数学の景色](https://mathlandscape.com/category/analysis-univ/topological-space/)

https://mathlandscape.com/category/analysis-univ/topological-space/

難易度: ★★★
「集合論」「代数学」「情報数学」という枠組みでも語られるテーマです。いわゆる「束・群・環・体」などはこのあたりの分野で扱われます。

<br><br>
<br>

#### 群論

- [【大学数学】群論入門①(群論とは何か)【代数学】](https://youtu.be/dO1T5-N3k1U)

https://youtu.be/dO1T5-N3k1U

難易度: ★★☆
ヨビノリ先生。

<br><br><br>



# 環境構築編

### Git
Gitはチームで共同作業を行う上で欠かせないツールです。あなたが作ったPythonファイルを他の人が編集するとか、バージョン１とバージョン２を分けてどちらも保存するなどできます。また、世界中のエンジニアがGitHubに投稿したレポジトリを、ダウンロード（クローンといいます）することができるのも魅力です。

<br><br>

- [Git 学習レッスン I - Progate](https://prog-8.com/courses/git)

https://prog-8.com/courses/git

難易度: ★☆☆
基本的なコマンドはBranch以外全部網羅されています。とても易しいです。

<br><br>

- [ブランチとは - サル先生のGit入門](https://backlog.com/ja/git-tutorial/stepup/01/)

https://backlog.com/ja/git-tutorial/stepup/01/

難易度: ★★☆
「ブランチ」というのはコマンドの名前です。ちょっと他のコマンドより奥が深いので分けました。ブランチに限らず、サル先生のページはわかりやすくまとめてあるので重宝します。

<br><br>

- [Git・GitHubに隠された便利な機能 | GitHub Cheat Sheet（日本語訳）](https://qiita.com/unbabel/items/1cf05f2a2be3d6fb3388)

https://qiita.com/unbabel/items/1cf05f2a2be3d6fb3388

難易度: ★★★
より便利に使いたい玄人向け。

<br><br>

<br>

### Docker
コンテナ型の仮想化プラットホーム。あなたのパソコン上に軽量な仮想のパソコンを起動して仮想環境を立ち上げます。プログラムはソースコードさえあればどんなパソコンでも動く、という都合のいいものではありません。仮想環境が有効なのは、プログラムが実行するのに必要な環境を、複数の人が共有できる点です。
<br><br>

- [公式チュートリアルの非公式日本語訳](https://matsuand.github.io/docs.docker.jp.onthefly/get-started/)

https://matsuand.github.io/docs.docker.jp.onthefly/get-started/

難易度: ★☆☆
公式チュートリアルの非公式日本語訳です。日本語訳もあります。概要を読んだ後、ガイドに沿ってチュートリアルを進めましょう。公式の和訳でわかりにくい部分がある場合は、以下の和訳やコマンド解説の記事を参考に、用語の意味を掴みましょう。

<ul>
<ul>
<li><a href="https://qiita.com/k5n/items/2212b87feac5ebc33ecb">初心者による初心者のためのDocker入門 その１ dockerコマンド編</a></li>
</ul></ul>

https://qiita.com/k5n/items/2212b87feac5ebc33ecb

<ul>
<ul>
<li><a href="https://qiita.com/Michinosuke/items/5778e0d9e9c04038903c">Dockerを体系的に学べる公式チュートリアル和訳</a></li>
</ul></ul>

https://qiita.com/Michinosuke/items/5778e0d9e9c04038903c

<br><br>
<br>


- [【図解】Dockerの全体像を理解する -前編-](https://qiita.com/etaroid/items/b1024c7d200a75b992fc)

https://qiita.com/etaroid/items/b1024c7d200a75b992fc

難易度: ★★☆
先程の記事を一通り見終わったら、今一度、Dockerの全体像、登場する用語を学習すると良いでしょう。

<br><br>

<br>




### 環境構築のここでつまづく
M1チップのMacはカーネルがcondaの環境でないとtensorflowが使えない、など、機械学習モジュールの環境構築の落とし穴はたくさんあります。インストールでつまづいた際に、ご覧ください。
難易度: ★★☆
- TensorFlow
    - [pipでtensorflowのインストールに詰まった時は](https://sukota.hatenablog.com/entry/2018/10/24/160521)


    - [M1 Macにtensorflowをインストールするまでの苦労話](https://www.mk-tech20.com/tensorflow/)


    - [M1 Mac に挫けない！TensorFlow に躓かない開発環境をつくる](https://data.gunosy.io/entry/tensorflow_on_m1)


    - [M1 MacにTensorFlow(tensorflow_macos)をインストールする方法](https://tech-diary.net/how-to-install-tensorflow-on-m1-mac/)


    - [tensorflowはPython3.7と互換性がなくインストールできない。](https://laboratory.kazuuu.net/tensorflow-is-not-compatible-with-python-3-7-and-cannot-be-installed/)
    Windowsユーザー向けです。

- PyTorch
    - [[python]torch がインストールできない場合の対応策](https://www.t3a.jp/blog/infrastructure/torch-install-killed/)
    
    - [PyTorchのインストール失敗時にチェックすべきこと
](https://self-development.info/pytorch%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AB%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%99%E3%81%B9/)

<br><br>
<br>

# いよいよ機械学習編

### 機械学習
#### 機械学習コーディングの全容
- [世界一わかりやすい機械学習プログラミングチュートリアル](https://qiita.com/nuco_fn/items/75272b5f4a3c27da132a#%E5%88%A5%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%81%A7%E3%82%82%E3%82%84%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86)

https://qiita.com/nuco_fn/items/75272b5f4a3c27da132a#%E5%88%A5%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%81%A7%E3%82%82%E3%82%84%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86

難易度: ★☆☆
線形回帰や分類を学ぶことができるライトな内容です。

<br><br>

- [【無料】データサイエンス入門:機械学習編全35回まとめと目次](https://datawokagaku.com/ml/)

https://datawokagaku.com/ml/

難易度: ★☆☆ ~ ★★☆
充実の内容です。クラスタリングや決定木などの機械学習の理解に必須の概念とPythonでの実装を両方学ぶことができます。

<br><br>

- [東京大学グローバル消費インテリジェンス寄附講座](https://gci.t.u-tokyo.ac.jp/)

https://gci.t.u-tokyo.ac.jp/

難易度: ★☆☆ ~ ★★☆
学生限定かつ受講には**申し込みと選考**がありますが、学生なら誰でも無料なので掲載しました。Pythonの使い方からXGBoostなどの機械学習ライブラリが使えるに至るまでの講義が全13回あります。

<br><br><br>

#### scikit-learn
- [scikit-learn 入門 - Chainer Tutorial](https://tutorials.chainer.org/ja/09_Introduction_to_Scikit-learn.html)

https://tutorials.chainer.org/ja/09_Introduction_to_Scikit-learn.html

難易度: ★☆☆
Chainerはディープラーニングのフレームワークですが、チュートリアルで簡潔にscikit-learnにも触れています。

<br><br>

- [Python（scikit-learn）による機械学習実装20問](https://youtu.be/Fbynk_9TfXg)

https://youtu.be/Fbynk_9TfXg

難易度: ★★☆
演習問題20問の動画です。最初の何問かはPandasやNumPyのみを用いた問題です。
<br><br>

- [【機械学習初心者向け】scikit-learn「アルゴリズム・チートシート」の全手法を実装・解説してみた](https://qiita.com/sugulu_Ogawa_ISID/items/e3fc39f2e552f2355209)

https://qiita.com/sugulu_Ogawa_ISID/items/e3fc39f2e552f2355209

難易度: ★★★
たっぷり全手法の解説はこちら。
<br><br><br>

#### XGBoost
- [XGBoostの概要とPython実装をわかりやすく解説【機械学習入門32】](https://datawokagaku.com/xgboost/)

https://datawokagaku.com/xgboost/

難易度: ★☆☆
アルゴリズムの説明ののちに、Pythonで実装しています。
<br><br>

- [XGBoost論文を丁寧に解説する(1)](https://qiita.com/triwave33/items/aad60f25485a4595b5c8)

https://qiita.com/triwave33/items/aad60f25485a4595b5c8

難易度: ★★☆
コーディングではなく、アルゴリズムが丁寧に説明されています。

<br><br><br>

#### LightGBM
- [LightGBMを超わかりやすく解説(理論+実装)【機械学習入門33】](https://datawokagaku.com/lightgbm/)

https://datawokagaku.com/lightgbm/

難易度: ★☆☆
先程のXGBoostの解説の続きで、LightGBMを解説してます。
<br><br>

- [【機械学習実践】LightGBMで回帰してみる【Python】](https://rin-effort.com/2019/12/29/machine-learning-6/)

https://rin-effort.com/2019/12/29/machine-learning-6/

難易度: ★★☆
コーディングもありますが、アルゴリズムの解説がメインです。
<br><br><br>


### ディープラーニング(深層学習)
ある程度の機械学習の知識を前提とするものは、入門講座でも難易度: ★★☆としました。
<br><br>

[ディープラーニングの基礎 - KIKAGAKU](https://free.kikagaku.ai/tutorial/basic_of_deep_learning)

https://free.kikagaku.ai/tutorial/basic_of_deep_learning

難易度: ★☆☆
「PyTorchで始める」「Tensorflowで始める」の２種類から選べます。ディープラーニングの解説教材としては易しい部類で、内容も充実しています。

<br><br>


[画像認識の基礎 - KIKAGAKU](https://free.kikagaku.ai/tutorial/basic_of_deep_learning)

https://free.kikagaku.ai/tutorial/basic_of_computer_vision

難易度: ★☆☆
先ほどと同じ、KIKAGAKUの公開している学習サイトで、画像認識の学習を「PyTorchで始める」「Tensorflowで始める」の２種類から選べます。内容、わかりやすさ、量ともに、画像認識の初学にはピッタリです。

<br><br>


- [ディープラーニング入門 - Chainer](https://tutorials.chainer.org/ja/13_Basics_of_Neural_Networks.html)

https://tutorials.chainer.org/ja/13_Basics_of_Neural_Networks.html

難易度: ★★☆
「準備編」「機械学習とデータ分析入門」「ディープラーニング入門」の3本立てのうちの「ディープラーニング入門」はディープラーニングフレームワーク Chainerを用いた推論を学ぶことができます。
<br><br>

- [DL4USコンテンツ - 東京大学松尾研究室](https://weblab.t.u-tokyo.ac.jp/dl4us/)

https://weblab.t.u-tokyo.ac.jp/dl4us/

難易度: ★★☆
ダウンロードボタンから、松尾研究室が公開している深層学習の無料講座のGitHubに飛びます。Lessonは全部で7回に分かれており、Kerasが使われています。Lesson7では、ゲーム攻略AIを作れるみたいです。
<br><br>


- [松尾研究室主催の公開講座「深層学習 / Deep Learning基礎講座」](https://weblab.t.u-tokyo.ac.jp/2022%E5%B9%B4%E5%BA%A6-%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92-deep-learning%E5%9F%BA%E7%A4%8E%E8%AC%9B%E5%BA%A7%E3%81%AE%E5%8B%9F%E9%9B%86%E9%96%8B%E5%A7%8B/)

https://weblab.t.u-tokyo.ac.jp/2022%E5%B9%B4%E5%BA%A6-%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92-deep-learning%E5%9F%BA%E7%A4%8E%E8%AC%9B%E5%BA%A7%E3%81%AE%E5%8B%9F%E9%9B%86%E9%96%8B%E5%A7%8B/

難易度: ★★☆
東京大学松尾研究室主催の深層学習講座です。学生限定かつ受講には**申し込みと選考**がありますが、学生なら誰でも無料です。全13回で、pythonと大学理系学部の線形代数、微分積分、確率論・統計学を前提としています。現時点でリンクは2022年度のものなので、興味がある場合は今年の募集ページがないか検索してください。

<br><br>

- [今こそ学ぼう オンライン学習コンテンツ「無料公開」のご案内](https://www.jdla.org/news/2020031301/)
難易度: ★☆☆ ~ ★★☆
Study-AI株式会社、株式会社AVILEN、スキルアップAI株式会社、株式会社zero to oneの４社が提供する無料講座及び演習問題がリストアップされています。少し古い記事なので、限定公開の期間が一部終了しているものがあります。また、**利用申請が必要**なものが多いので、ご注意ください。以下のようなものが紹介されています。

    - [G検定模擬テストと公式例題解説](http://study-ai.com/generalist/)
難易度: ★☆☆
G検定向け演習問題が300題公開されています。利用には申請が必要です。
    
    - [現場で使えるディープラーニング基礎講座（E資格　認定プログラム1号）【トライアル版】](https://www.skillupai.com/deep-learning/#trial)
難易度: ★☆☆
ディープラーニング基礎講座8日程のうち3日分（6時間相当）がトライアル版で利用できるようです。

https://www.jdla.org/news/2020031301/

<br><br>
<br>


#### TensorFlow
公式のチュートリアルよりも、前セクションの[ディープラーニング(深層学習)](#ディープラーニング深層学習)で紹介した「[ディープラーニングの基礎 - KIKAGAKU](https://free.kikagaku.ai/tutorial/basic_of_deep_learning)」や「[画像認識の基礎 - KIKAGAKU](https://free.kikagaku.ai/tutorial/basic_of_deep_learning)」の方が簡単で解説も詳しいです。
用語がわかっている方には公式チュートリアルの方が簡潔でいいでしょう。
<br><br>




- [公式チュートリアル](https://www.tensorflow.org/tutorials)

https://www.tensorflow.org/tutorials

難易度: ★★☆
日本語版公式チュートリアルで学習するのがお勧めです。ただし、「入門者向けクイックスタート」というのは罠で、`epoch`や`softmax`のような深層学習特有の用語、及び深層学習の流れの詳しい説明はないので、予め別教材で学習する必要があります。
<br><br>

- [多分もっともわかりやすいTensorFlow 入門 (Introduction)](https://qiita.com/junichiro/items/8886f3976fc20f73335f)

https://qiita.com/junichiro/items/8886f3976fc20f73335f

難易度: ★★☆
公式チュートリアルでわかりにくい部分がある場合は、このQiita記事のようにチュートリアルを解説している記事も参考にしましょう。
<br><br>
<br>

#### PyTorch
易しさ、とっつきやすさを重視するなら、まずは[ディープラーニング深層学習](#ディープラーニング深層学習)セクションで紹介した「[ディープラーニングの基礎 - KIKAGAKU](https://free.kikagaku.ai/tutorial/basic_of_deep_learning)」や「[画像認識の基礎 - KIKAGAKU](https://free.kikagaku.ai/tutorial/basic_of_deep_learning)」の方を、詳しさを重視するなら下記教材がおすすめです。
<br><br>

- [PyTorchチュートリアル（日本語翻訳版）](https://yutaroogawa.github.io/pytorch_tutorials_jp/)

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

難易度: ★★☆
Google Colaboratory を通して、PyTorchチュートリアルを日本語翻訳して解説しています。内容はかなり充実しています。
<br><br>
<br>

### 前処理・精度上げなど


#### 前処理全体のおさらい

- [機械学習のデータ前処理備忘録](https://qiita.com/_tsuru/items/53b9e3f7427b631b17cf)

https://qiita.com/_tsuru/items/53b9e3f7427b631b17cf

難易度: ★☆☆
「カテゴリーデータの処理」「欠損値処理」「特徴量の変換,追加」「次元削除」の簡潔な内容がまとめてあります。
<br><br>

- [データ前処理入門 - AI Academy](https://aiacademy.jp/texts/show/?id=187)

https://aiacademy.jp/texts/show/?id=187

難易度: ★☆☆
有名なKaggleのタイタニックのデータセットを用いて、補完やOne-Hot-Encodeingなどを前処理についてコードを解説しています。所要時間は20~30分のようです。

<br><br>
<br>

#### ハイパーパラメータチューニング

- [機械学習のパラメータチューニングを「これでもか！」というくらい丁寧に解説 - Qiita -](https://qiita.com/c60evaporator/items/ca7eb70e1508d2ba5359)

https://qiita.com/c60evaporator/items/ca7eb70e1508d2ba5359

難易度: ★★☆
精度上げの手法の一つ、チューニングを1から10まで教えてくれます。

<br><br>


- [Optunaハンズオン](https://github.com/pfnet-research/optuna-hands-on/tree/master/ja)

https://github.com/pfnet-research/optuna-hands-on/tree/master/ja

難易度: ★★☆
ベイズ最適化によってハイパーパラメーターの最適化を行うライブラリOptunaのチュートリアルです。
<br><br>
<br>

#### 100本ノック
- [画像処理100本ノック!!](https://github.com/minido/Gasyori100knock-1)

https://github.com/minido/Gasyori100knock-1

難易度: ★★☆
二値化や平均プーリングなどの基本問題から、ガウシアンピラミッドのような聞きなれない内容まで、OpenCVを用いた画像前処理の日本語問題がたくさんあります。

<br><br>

- [言語処理100本ノック](https://nlp100.github.io/ja/)

https://nlp100.github.io/ja/

難易度: ★★☆
「準備運動」「UNIXコマンド」「正規表現」「形態素解析」「係り受け解析」「機械学習」「単語ベクトル」「ニューラルネットワーク」「RNN, CNN」「機械翻訳」の10章立てになっています。問題のみが各章10題ずつ出題されています。解答は以下を参考にしてください。

<ul>
<ul>
<li><a href="https://amaru-ai.com/entry/2022/10/15/204035">【言語処理100本ノック 2020】Pythonによる解答例まとめ</a></li>
</ul></ul>


https://amaru-ai.com/entry/2022/10/15/204035
        
<br><br>
<br>

- [音声情報処理n本ノックを目指して](https://github.com/tam17aki/speech_process_exercise)

https://github.com/tam17aki/speech_process_exercise

難易度: ★★☆
「デジタル信号処理」や「音声の特徴量抽出」といったテーマを扱っています。演習問題というよりは、「ステレオからモノラルへ」というお題と、それを実現するPythonコードが掲載してある形式です。制作途中のようです。
    

# おわりに

一つでも良い教材と出会えたなら幸いです。

弊社では、経験の有無を問わず、社員やインターン生の採用を行っています。

興味のある方は[こちら](https://www.recruit.nuco.co.jp/?qiita_item_id=ff36b82e37d0c4ccc073)をご覧ください。