はじめに
- これからPython・機械学習を本格的に身に着けたい方
- コストをかけずに、お試しで学習してみたい方
- 英語よりも、なるべく日本語の教材で勉強したい方
以上の方に向けて溢れんばかりの無料のWeb教材をまとめました。
弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。
また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。
機械学習、人工知能とは何ぞやの方へ
「プログラミングは初めて。。。」という方でも、思い立ったが吉日。
無料教材を傍に、とにかくコードを書いてみましょう!
また、レベル感がわかるようにコメントし、初学者でない方にも有用な内容になるよう努めました。
準備段階として、「言語 & 開発基礎編」「学問編」「環境構築編」を用意しました。機械学習編は一番最後のセクションです。
Pyhtonやエディタのことは大体わかってるぜ!という方は下記の表から早速「いよいよ機械学習編」に飛んでください。
プログラミング初学の方は一旦、先述の準備段階に相当する内容を理解してから「いよいよ機械学習編」コーディングの学習に移ることをお勧めします。
言語 & 開発基礎編 |
学問編 |
環境構築編 |
いよいよ機械学習編 ←機械学習・DL教材はこのセクションから! |
散々四方で聞き飽き見飽きたかもしれませんが、今一度「機械学習ってなんだっけ?」をおさらいしたい方はこちらの記事がわかりやすいです!
また、各教材ごとに難易度をつけました。参考の一助としてください。
難易度 | 目安 | 備考 |
---|---|---|
★☆☆ | 入門的な内容 | 取り組みやすさ、初学者へのわかりやすさなども加味しています。 |
★★☆ | 基礎的な内容 | 演習問題主体の教材で、基本知識を前提としているものは「難易度: ★★☆」。 |
★★★ | 応用、発展的な内容 | 内容が難解というよりも、「知っておくと得」や「ある程度勉強した人にとって役立つ情報」という位置付けであることをご理解ください。 |
言語&開発基礎編
PythonやSQLなどの言語と開発環境に関連することをまとめました。
機械学習に関する教材はこの次のセクションにまとめてあります。
学習環境
インストール及び使い方チュートリアルのサイトと、ある程度使い慣れた後に役立つtips集を各エディタでまとめました。
Google Colaboratory
Python初学者にとって最もわかりやすいPython実行環境です。プログラミングは初めて!という方はまずこのGoogle Colaboratory(通称: Colab)から始めてみて、使い方がある程度わかったら、そのまま次のセクションのPython編に移りましょう。
難易度: ★☆☆
東京大学の公開しているPython講座ですが、冒頭でColabの使い方を解説しています。使ったことのない方はこちらから!
難易度: ★★☆
GPUやパッケージバージョン変更方法などについて触れています。
難易度: ★★☆
pandasで簡単に列入れ替え、フィルタリング等を可能にするインタラクティブ・テーブルの利用法など、colabを最大限活用できる情報が目白押しです。
難易度: ★★★
こちらもtips集。tensorflowバージョンの簡単な指定方法やVM(仮想マシン)を利用したスピードアップの方法など。。。
Jupyter Lab
GoogleChromeなどのブラウザ上でプログラムの記述と実行ができるのが、Jupyter Labの特徴です。
難易度: ★☆☆
Jupyter Labだけをインストールするやり方に加えて、Anacondaと一緒にインストールするやり方が紹介されています。最低限の使い方解説もあります。
難易度: ★★★
ある程度使い方に慣れた方はこちら。目次自動作成、検索と置換、HTML自動保存などを解説。
PyCharm
Python特化の統合開発環境(IDE)です。有料版のProfessional、無料版のCommunityとEducational(プログラミング初学者向け)がありますが、無料版でも十分すぎるほど高機能です。UIも洗練されています。
難易度: ★☆☆
よりPyCharmを詳しく知りたい方に。
難易度: ★☆☆
インストール後、プロジェクト作成から実行までの使い方を解説する。PyCharmのインストールはこちらから。
難易度: ★★☆
より具体的な便利性について言及されている。ある程度使い慣れた方向け。
難易度: ★★☆
同じくある程度使い方がわかった方向け。
Python
Python
難易度: ★☆☆
初めて学ぶ方へ。ポップなのはこれ。めちゃくちゃ易しいのできっと挫折しないです!
難易度: ★☆☆
東大が自習用に公開している無料教材。内容は充実していますが、それだけにボリュームはなかなかのもの。飽きないように手を動かしながらやりましょう。
難易度: ★★☆
公式ドキュメントというものをご存知ですか?
Python公式が出したPythonの取扱説明書です。Python公式ドキュメントに限った話ではないですが、これから先、日本語情報の少ないライブラリやツールを使い、情報に行き詰まった際は、公式の取扱説明書の存在を思い出してください。下手に外国語のサイトをGoogle翻訳するよりも、公式ドキュメントを英語で読んだ方が早いということもあります。多くの場合、初学者にとってハードルは高いですが。。。
難易度: ★★☆
公式が公開するチュートリアルです。
難易度: ★★★
==
と is
の違いはなんでしょうか?基本がバッチリな方はPythonを使いこなす更なるtipsを探すのもいいでしょう。
NumPy
NumPyはベクトルや行列などの多次元配列を扱うデータ分析においては、必須のライブラリです。
難易度: ★☆☆
さっくり学べます。とにかく一緒にコードを書きましょう。
難易度: ★★☆
演習問題20問。知識の定着には演習が効果的です。実際に打ったメソッドは忘れにくい!
Pandas
Pandasはデータ解析用のライブラリでテーブルをデータフレームという形式で扱います。
難易度: ★☆☆
さっくり学べます。とにかく一緒にコードを書きましょう。
難易度: ★★☆
演習問題20問の動画。
Matplotlib
グラフ描画のためのライブラリです。NumpyやPandasが使えるようになってから学習しましょう。
難易度: ★☆☆
散布図やヒストグラム、折れ線グラフ等を作ります。各グラフの描画メソッドを暗記するというよりは、使い方の雰囲気を掴みましょう。
難易度: ★★☆
演習問題20問の動画。
Scipy
科学技術計算のライブラリです。NumPyと組み合わせて使います。NumPyにない計算を補うような位置付けです。機械学習では音声認識などに使われることが多いです。
難易度: ★☆☆
定積分や順列など、基本的な科学計算の他、「画像の読み込み」・システムの「状態方程式」などの応用的な章立てもあります。
難易度: ★★☆
より詳しいです。ベッセル関数やルジャンドル多項式といった複素関数論などで扱う特殊関数も登場します。
エディタ
Visual Studio Code
2023年現在、開発エディタの定番といえば、VSCodeことVisual Studio Codeでしょう。これからプログラミングを勉強する方にももちろんお勧めできます。
難易度: ★☆☆
前半はVSCodeの使い方が簡潔、且つわかりやすくインストールから使い方まで触れてあります。後半はHTML, JavaScriptなどWeb開発系のことにも触れています。
難易度: ★☆☆
動画がいい方はこちら!
難易度: ★★★
視覚や整形、その他Python及び機械学習うってつけの拡張機能の情報満載。
難易度: ★★★
データ分析で使うCSVファイル。この拡張機能を使うとそのままでは見づらいCSVファイルが成形された状態で扱えます。
Linux
難易度: ★☆☆
「コマンドライン」と聞いて「?」となる方はまずはここからやってみましょう。初心者にも超わかりやすいです。
難易度: ★☆☆
シェルスクリプトにおける変数やif文についてのまとめ。
難易度: ★★★
SSHはリモートマシンや仮想マシンに接続する際使用されるプロトコルです。機械学習の文脈でもリモートマシンとの接続が必要な時にしばしば使われます。
GPU
GPUは、Graphics Processing Unitの略で、画像処理を行う計算装置(プロセッサ)のことです。
画像認識AIモデルの学習の際に、CPUよりも画像処理が速いGPUを使った方が良いことがあります。
難易度: ★☆☆
Google ColaboratorでもGPUが無料で使えます。金銭的にも技術的にもハードルは一番低いです。
難易度: ★☆☆
GPUとCPUの違いから、性能と消費電力などの注意点など、GPU選びの概要が説明されています。
難易度: ★★☆
GPUサーバを準備した後、接続と学習について触れています。
データベース・SQL
難易度: ★☆☆
わかりやすくて、易しく学べる入門講座。前半の基本構文解説は無料ですが、後半の集計関数などの解説は一部有料です。プログラミングに慣れていない人や、SQL文をざっくり易しい解説で学びたい方は、無料パートの学習だけでも十分おすすめ。
難易度: ★☆☆
プログラミングにはちょっと慣れてきたかも??という方はこちらがおすすめ。よりスッキリした解説で、導入も含めて大体全部の構文が時短で学べます。SQL文を自分で書いて、実行結果も表示される仕様になっています。
難易度: ★★☆
演習問題がたくさん。解答と補足説明付き。ガッツリ演習で身につけたい方はこちらをどうぞ!
クラウド
GCP
難易度: ★☆☆
Google Cloud Platform(GCP)でGPUを使う手順を解説。2021年2月の記事なので、GCPのUIに多少の変更がある可能性があります。
難易度: ★★☆
GCPの仮想マシンサービスである Compute Engineの詳しい解説。
AWS
難易度: ★★☆
AWSのクラウドを実際に動かす演習形式で学びます。書籍化もされているようで、AWSを用いた機械学習を解説する章立てもあります。
学問編
データサイエンス、統計、線形代数は一通り理解されるのが望ましいです。
データサイエンス
難易度: ★☆☆ ~ ★★☆
AI及びデータ活用とそれらが関わる数学、社会実装、動向などデータサイエンスを俯瞰できるスライドベースの教材。
難易度: 様々
約100講座の中からカテゴリ・レベル別で講座検索が可能。ニーズに応じて検索でき、各講座ごとに概要やレベル感の軽い説明もされている。
難易度: ★★☆
データの加工や集計、統計学や機械学習を使ったモデリングの前処理などの問題100問。
統計
難易度: ★☆☆ ~ ★★☆
初級編・基礎編・中級編・実践編と分かれており、内容はかなり充実しています。高校数学の「データの分析」がある程度わかる方は、タイトルで分かりそうなところはすっ飛ばしてつつ、基礎編から始めるのをお勧めします。中級編ではノンパラメトリック分析やロジスティック回帰をはじめとした突っ込んだ内容にも触れており、しっかり統計を勉強したい方にもお勧めです。
難易度: ★★☆
こちらは統計の演習問題100選です。解答もついているのが嬉しいところ。
難易度: ★☆☆
動画の方が学びやすい方はこちら。言わずと知れたヨビノリたくみ先生の授業です。
数学
線形代数
機械学習、特に画像認識とは切っても切り離せない仲にあるのが行列及びテンソルです。
難易度: ★☆☆
高校数学のベクトルに不安がある人は平面ベクトルから見直すといいでしょう。
難易度: ★★☆
基礎編ののちに各論に入るので、とりあえず概要だけ知りたい人は、基礎編(とできれば線型写像編)だけ勉強して、必要に応じて各論を勉強するのもいいでしょう。
難易度: ★★★
大学の出している演習問題です。数学全般に言えることですが、大学授業の講義ノート及び演習問題はググればたくさん見つかります。
難易度: ★☆☆
ヨビノリ先生。
微積分学
高校数学レベルの微積分に不安がある方は、やっておいた方がいいでしょう。大学数学レベルは、興味があればで良いでしょう。
- 高校数学の数学Ⅱの微分積分を復習したい、勉強したい場合はこちらから。
難易度: ★☆☆
難易度: ★★★
個人的には大学数学の微積分にまで手を出さないと、機械学習を実装する上でわからないということはあまりないと思いますが、テイラー展開やガウス積分などのキーワードが出てきて尚且つそれらを詳しく知りたい場合は覗いてみるといいでしょう。
集合論
難易度: ★★★
「集合論」「代数学」「情報数学」という枠組みでも語られるテーマです。いわゆる「束・群・環・体」などはこのあたりの分野で扱われます。
群論
難易度: ★★☆
ヨビノリ先生。
環境構築編
Git
Gitはチームで共同作業を行う上で欠かせないツールです。あなたが作ったPythonファイルを他の人が編集するとか、バージョン1とバージョン2を分けてどちらも保存するなどできます。また、世界中のエンジニアがGitHubに投稿したレポジトリを、ダウンロード(クローンといいます)することができるのも魅力です。
難易度: ★☆☆
基本的なコマンドはBranch以外全部網羅されています。とても易しいです。
難易度: ★★☆
「ブランチ」というのはコマンドの名前です。ちょっと他のコマンドより奥が深いので分けました。ブランチに限らず、サル先生のページはわかりやすくまとめてあるので重宝します。
難易度: ★★★
より便利に使いたい玄人向け。
Docker
コンテナ型の仮想化プラットホーム。あなたのパソコン上に軽量な仮想のパソコンを起動して仮想環境を立ち上げます。プログラムはソースコードさえあればどんなパソコンでも動く、という都合のいいものではありません。仮想環境が有効なのは、プログラムが実行するのに必要な環境を、複数の人が共有できる点です。
難易度: ★☆☆
公式チュートリアルの非公式日本語訳です。日本語訳もあります。概要を読んだ後、ガイドに沿ってチュートリアルを進めましょう。公式の和訳でわかりにくい部分がある場合は、以下の和訳やコマンド解説の記事を参考に、用語の意味を掴みましょう。
難易度: ★★☆
先程の記事を一通り見終わったら、今一度、Dockerの全体像、登場する用語を学習すると良いでしょう。
環境構築のここでつまづく
M1チップのMacはカーネルがcondaの環境でないとtensorflowが使えない、など、機械学習モジュールの環境構築の落とし穴はたくさんあります。インストールでつまづいた際に、ご覧ください。
難易度: ★★☆
-
TensorFlow
-
PyTorch
いよいよ機械学習編
機械学習
機械学習コーディングの全容
難易度: ★☆☆
線形回帰や分類を学ぶことができるライトな内容です。
難易度: ★☆☆ ~ ★★☆
充実の内容です。クラスタリングや決定木などの機械学習の理解に必須の概念とPythonでの実装を両方学ぶことができます。
難易度: ★☆☆ ~ ★★☆
学生限定かつ受講には申し込みと選考がありますが、学生なら誰でも無料なので掲載しました。Pythonの使い方からXGBoostなどの機械学習ライブラリが使えるに至るまでの講義が全13回あります。
scikit-learn
難易度: ★☆☆
Chainerはディープラーニングのフレームワークですが、チュートリアルで簡潔にscikit-learnにも触れています。
難易度: ★★☆
演習問題20問の動画です。最初の何問かはPandasやNumPyのみを用いた問題です。
難易度: ★★★
たっぷり全手法の解説はこちら。
XGBoost
難易度: ★☆☆
アルゴリズムの説明ののちに、Pythonで実装しています。
難易度: ★★☆
コーディングではなく、アルゴリズムが丁寧に説明されています。
LightGBM
難易度: ★☆☆
先程のXGBoostの解説の続きで、LightGBMを解説してます。
難易度: ★★☆
コーディングもありますが、アルゴリズムの解説がメインです。
ディープラーニング(深層学習)
ある程度の機械学習の知識を前提とするものは、入門講座でも難易度: ★★☆としました。
難易度: ★☆☆
「PyTorchで始める」「Tensorflowで始める」の2種類から選べます。ディープラーニングの解説教材としては易しい部類で、内容も充実しています。
難易度: ★☆☆
先ほどと同じ、KIKAGAKUの公開している学習サイトで、画像認識の学習を「PyTorchで始める」「Tensorflowで始める」の2種類から選べます。内容、わかりやすさ、量ともに、画像認識の初学にはピッタリです。
難易度: ★★☆
「準備編」「機械学習とデータ分析入門」「ディープラーニング入門」の3本立てのうちの「ディープラーニング入門」はディープラーニングフレームワーク Chainerを用いた推論を学ぶことができます。
難易度: ★★☆
ダウンロードボタンから、松尾研究室が公開している深層学習の無料講座のGitHubに飛びます。Lessonは全部で7回に分かれており、Kerasが使われています。Lesson7では、ゲーム攻略AIを作れるみたいです。
難易度: ★★☆
東京大学松尾研究室主催の深層学習講座です。学生限定かつ受講には申し込みと選考がありますが、学生なら誰でも無料です。全13回で、pythonと大学理系学部の線形代数、微分積分、確率論・統計学を前提としています。現時点でリンクは2022年度のものなので、興味がある場合は今年の募集ページがないか検索してください。
-
今こそ学ぼう オンライン学習コンテンツ「無料公開」のご案内
難易度: ★☆☆ ~ ★★☆
Study-AI株式会社、株式会社AVILEN、スキルアップAI株式会社、株式会社zero to oneの4社が提供する無料講座及び演習問題がリストアップされています。少し古い記事なので、限定公開の期間が一部終了しているものがあります。また、利用申請が必要なものが多いので、ご注意ください。以下のようなものが紹介されています。-
G検定模擬テストと公式例題解説
難易度: ★☆☆
G検定向け演習問題が300題公開されています。利用には申請が必要です。 -
現場で使えるディープラーニング基礎講座(E資格 認定プログラム1号)【トライアル版】
難易度: ★☆☆
ディープラーニング基礎講座8日程のうち3日分(6時間相当)がトライアル版で利用できるようです。
-
TensorFlow
公式のチュートリアルよりも、前セクションのディープラーニング(深層学習)で紹介した「ディープラーニングの基礎 - KIKAGAKU」や「画像認識の基礎 - KIKAGAKU」の方が簡単で解説も詳しいです。
用語がわかっている方には公式チュートリアルの方が簡潔でいいでしょう。
難易度: ★★☆
日本語版公式チュートリアルで学習するのがお勧めです。ただし、「入門者向けクイックスタート」というのは罠で、epoch
やsoftmax
のような深層学習特有の用語、及び深層学習の流れの詳しい説明はないので、予め別教材で学習する必要があります。
難易度: ★★☆
公式チュートリアルでわかりにくい部分がある場合は、このQiita記事のようにチュートリアルを解説している記事も参考にしましょう。
PyTorch
易しさ、とっつきやすさを重視するなら、まずはディープラーニング深層学習セクションで紹介した「ディープラーニングの基礎 - KIKAGAKU」や「画像認識の基礎 - KIKAGAKU」の方を、詳しさを重視するなら下記教材がおすすめです。
難易度: ★★☆
Google Colaboratory を通して、PyTorchチュートリアルを日本語翻訳して解説しています。内容はかなり充実しています。
前処理・精度上げなど
前処理全体のおさらい
難易度: ★☆☆
「カテゴリーデータの処理」「欠損値処理」「特徴量の変換,追加」「次元削除」の簡潔な内容がまとめてあります。
難易度: ★☆☆
有名なKaggleのタイタニックのデータセットを用いて、補完やOne-Hot-Encodeingなどを前処理についてコードを解説しています。所要時間は20~30分のようです。
ハイパーパラメータチューニング
難易度: ★★☆
精度上げの手法の一つ、チューニングを1から10まで教えてくれます。
難易度: ★★☆
ベイズ最適化によってハイパーパラメーターの最適化を行うライブラリOptunaのチュートリアルです。
100本ノック
難易度: ★★☆
二値化や平均プーリングなどの基本問題から、ガウシアンピラミッドのような聞きなれない内容まで、OpenCVを用いた画像前処理の日本語問題がたくさんあります。
難易度: ★★☆
「準備運動」「UNIXコマンド」「正規表現」「形態素解析」「係り受け解析」「機械学習」「単語ベクトル」「ニューラルネットワーク」「RNN, CNN」「機械翻訳」の10章立てになっています。問題のみが各章10題ずつ出題されています。解答は以下を参考にしてください。
難易度: ★★☆
「デジタル信号処理」や「音声の特徴量抽出」といったテーマを扱っています。演習問題というよりは、「ステレオからモノラルへ」というお題と、それを実現するPythonコードが掲載してある形式です。制作途中のようです。
おわりに
一つでも良い教材と出会えたなら幸いです。
弊社では、経験の有無を問わず、社員やインターン生の採用を行っています。
興味のある方はこちらをご覧ください。