機械学習と数学の関係って?数学知識と深層学習は難しい?機械学習向け数学の学び方、動画、ネットなどを一挙紹介!
この記事では、機械学習をこれから勉強するうえで数学に対してどのように向き合っていけばいいのかについて解説します。
初学者や特に人文学系など理系科目を専門にしていない人たちにとって、どうしても数学には難しい、取っつきにくいというイメージがつきものだと思います。
この記事では、機械学習に必要な数学のロードマップや勉強法について紹介します。
少しでも勉強の助けになれば幸いです。
こんにちは、マットです。
この記事でわかること
機械学習と数学の関係
機械学習と数学は切っても切り離せない関係にあります。
最近は、ノーコードと言われるプログラミング(コーディング)が不要な、クラウドサービスも増えています。
初心者向けのPythonやディープラーニングの記事はこちらを参照しくてださい。
またAIと機械学習全般を学ぶ方は、こちらの記事を参考に読んでください。
この記事では、なぜ機械学習が数学と関係あるのかについてシンプルに紹介します。
機械学習に使われる数学とコンピュータとは
機械学習(マシーンラーニング)を理解するためには、ご想像の通り数学の知識があると非常に便利です。
機械学習のアルゴリズムと呼ばれるアイデアは、ほとんどが数学上の発見が関係します。
つまり機械学習の元になった技術は、数学とコンピュータ工学は相互に影響を与えながら発展してきました。
しかし、機械学習を学ぶために数学の知識が必要だからと言って、「すべての機械学習を扱う人が数学を勉強しなけばならない」というわけではありません。
このポイントにつては、後ほど詳しく解説します。
コンピュータと数学の歴史
機械学習と数学の密な関係を、まずは歴史の観点からみていきましょう。
エレクトロニクスの時代以前(1930年代以前)のコンピューターに最も近いのは、実はそろばんでした。
厳密に言えば、そろばんは人間のオペレーターを必要とするため、実際には電卓です。
一方、コンピューターは、ソフトウェアと呼ばれる一連の組み込みコマンドに従って自動的に計算を実行します。
20で世紀、技術のブレークスルーは、私たちが今では完全に依存することは進化し続ける計算機=コンピュータであることは間違いありません。
しかし、Intel(c)社などのCPUやマイクロプロセッサ、スーパーコンピュータが登場する前でさえ、現代の生活のあらゆる側面を劇的に再形成して以来、テクノロジーの基礎を築くのを助けた著名な科学者や発明家がいました。
コンピュータを日本語に訳すと計算機となります。
実は計算機のアイデア自体はかなり昔からあり、世界中に日本の「そろばん」のような計算機は点在しています。
機械式計算機としてのコンピュータのアイデアは、17世紀の数学者ブレーズ・パスカルやドイツ人哲学者のゴッドフリート・ライプニッツが考えていました。
ちなみに、ライプニッツはその後コンピュータの基礎ともいえる、ある状態をゼロとイチだけで表現する「2進法」の考案者でもあります。
これらの機械仕掛けの計算機はまだプログラムが搭載されていませんが、ある程度自動で簡単な計算を行うことができます。
「計算可能性」の発見
コンピュータの出現する少し前に、重大な機械が開発されます。それが特殊な紙テープを用いた「データの読み取り機」です。
これが、20世紀のコンピュータの基礎となった「計算可能性」となります。 「計算可能性」 とは、あらかじめ与えられた規則に従い,偶然や独創性によらず機械的に記号を処理することができる概念です。つまり数学と同様に公式や定理を忠実に再現できることを指します。
私たちが普段使っているコンピュータは、1930年前後(20世紀初頭)に発明されました。
発明者は数学者チューリング。彼はチューリングマシンという抽象機械を考案し、紙テープに刻まれたプログラムにしたがってハードウェア(電気信号)とソフトウェアが動作を実行します。
チューリングマシンは、計算可能性という概念を説明するために考案されました。これによって計算が厳密に定義されました。
機械学習と数学の歴史
数学者フォン・ノイマンは、チューリングマシンのアイデアを受けて、大量の真空管とケーブルからなる機械としてのコンピュータを実現しました。このコンピュータをノイマン型コンピュータといい、現代のコンピュータのほとんどはこのノイマン型コンピュータの方式を採用しています。
例えるならば、 数学者チューリング が天才で、必要に機会を並べて原理を具現化できた数学者フォン・ノイマン が秀才ですね。
機械学習と チェッカー・プログラム
数学者フォン・ノイマン によって、計算機=コンピュータは膨大な計算能力を手に入れました。
機械学習の父と呼ばれるアーサー・サミュエルは、コンピュータの日進月歩で増大していく計算能力を身近で見て、「機械学習」のアイデアを考案しました。「機械学習」の主な目的は、「明示的なプログラムを書くことなくコンピュータを動作させる」ことにあります。
彼は、チェスが大好き。彼はこう考えました「もし自分より強いプレイヤーを計算機で造れたら…」。そんな素朴な思いからチェス問題を解かせるチェッカー・プログラムを開発しました。
チェッカー・プログラムは、コンピュータ自身にチェッカーの対局をさせ、数千ものゲームを行わせることで勝ちに結びつくパターンや負けのパターンを認識させるという方法をとりました。
なんと最終的にこのプログラムは1962年にはコネチカット州チャンピオンを倒すまでに成長しました。
これが世界初の学習プログラムだといわれています。この時代は、AIの歴史でいうところの第1次AIブームに該当します。この第1次AIブームを受けて機械学習の研究が盛んになり、いくつかのブレイクスルーを経て現在に至ります。
機械学習の数学を学ぶポイント
具体的な機械学習の数学分野の話に移る前に、機械学習のための数学を勉強する際のポイントについて紹介します。
機械学習に数学は必要?
そもそも、あなたにとって数学の勉強が不要である可能性もあります。
大抵の機械学習ライブラリ(プログラミング言語:PythonやC++)やクラウドAPI(ネットワーク経由で通信するサービス)は、数学の知識なしで、対象を学習したり推論する事できるような仕組みになっています。
つまり、機械学習をツールとして使い簡単な分類や推測を計算したい人にとって、数学の「勉強は割に合わない努力」に終わってしまうこともあります。
もちろん、勉強して無駄なことはありませんが、機械学習ライブラリのテンプレート機能は非常に優秀なので、「学習者によっては無理して数学を学ぶ必要はない」でしょう。
数学やプログラミング不要のAIサービス
数学やプログラミング不要のAI技術活用サービス MatrixFlow
例えば、株式会社「MatrixFlow」は、数学やプログラミング、機械学習の専門的な知識なしでAIを活用するためのプラットフォームを開発しています。
これからも機械学習ライブラリが発展するにつれて、ユーザー側が数学知識なしでも、さまざまなことができるようになるでしょう。
初心者でも機械学習モデルを作成できるプログラミングなしアプリ「Lobe」
米マイクロソフトは2020年、初心者でも機械学習モデルを作成できる無料のノーコードアプリ「Lobe」のを公開した。同アプリはMacとWindowsで利用できる。
Lobeに画像をインポートすると、データサイエンスの経験がないユーザーでも、簡単にラベル付けおよび、機械学習のデータセットを作成できる。
また、データセットを作成したら、プラットフォーム上でデータセットを活用し、アプリやウェブサイト、デバイスで動作させられる。
米マイクロソフトは、無料アプリ「Lobe」も公開した。同アプリはMacとWindowsで利用できる。
- 使いやすい誰でも簡単に使用できるように設計されています。プログラミング経験は必要ありません。
- 無料でプライベートデータをクラウドにアップロードせずに、自分のコンピューターで無料でトレーニングできます。
- どこにでもエクスポートMacとWindowsで利用できます。モデルをエクスポートして、選択した任意のプラットフォームで実行できます。
Lobeに画像をインポートすると、データサイエンスの経験がないユーザーでも、簡単にラベル付けができるよ。
機械学習のデータセットも簡単にアプリで、ラベリング(アノテーション)作成できる。
また、データセットを作成したら、プラットフォーム上でデータセットを活用し、そのデータをアプリやウェブサイト、デバイスで実行できるよ。。
公式ブログにおいては、エクササイズの姿勢を推論したり、ハチの巣の識別、ハンドジェスチャーの判別、アナログメーターの危険を察知、適切な安全対策を促進するために、マスクが正しく着用されていることを監視する、などたくさんの事例が紹介されており、家庭や職場などの日常生活での活用を見込んでいると考えられる。
前述以外でも様々な数学不要なクラウドサービスが続々と発表されています。いかの記事をご覧ください。
機械学習の結果をより深く理解するためには、数学知識が必須
先程、「学習者によっては無理して数学を学ぶ必要はない」とお伝えしました。
ただし機械学習を活用するだけ(データ活用者=データサイエンティスト)の方々も、活用機械学習の結果に対して、「なぜこの結果?」や「さらによくするは?」といった課題を考えて、最適な答えを導き出すには多少なりとも数学知識が必要です。
すでにいろいろなサービスを試されたかはご存知ですが、実際簡単な機械学習だけでは、1回で最適な答えを得られるものは多くありません。
データ活用者=データサイエンティスト は、何度も何度も試行錯誤をしながら計算値をより深くまで掘り下げることによって、機械学習の恩恵を十分に得ることができます。
深層学習はより複雑な数学を必要とする
ディープラーニング技術の登場は、第3次AIブームのきっかけになりました。
ディープラーニングは、従来の機械学習よりもはるかに大きなデータ群を扱える一方で、内部的により複雑な計算を行っています。
ディープラーニングは高度な技術であり、これを扱うためには数学の知識があることが好ましいと言えます。基本的な機械学習に加えてディープラーニングを扱う人であれば、より高度な数学の勉強に取り組んでみることをおすすめします。
機械学習にはどのような数学が必要なのか
この章では、機械学習において学習するべき数学を紹介します。
読者のなかには「これをすべて勉強しないといけないのか…」と困惑する方もいるでしょう。
すべてを一気に勉強しようとすると大変な労力が必要になるので、ご自身で本当に必要な分野を見極めて勉強することが大切です。
それでは、機械学習を学ぶ上で必要な数学の分野について順に紹介します。
中学・高校数学までの内容
機械学習における数学を理解するためには、中学・高校で習うような数学の知識が必須です。
中学・高校数学をしっかりと理解することで、機械学習がどのような過程を経て動いているのか、どのようなアイデアに基づいているのかを部分的に理解することができます。
以下のような分野/項目の数学を習得することをお勧めします。
(凡例: ◎ 必修、○ 習得が望ましい、△ できれば習得)
- 数と式:
- ◎ 数(自然数/整数/有理数/無理数/実数/複素数)と定数と変数 → あらゆる場面で使う
- ◎ 平方根と累乗/累乗根 → 例えば活性化関数などさまざまな計算で使う
- ◎ 連立方程式 → さまざまな計算で使う
- ○ 集合 → 例えば条件付き確率などで使う
- 数列:
- ◎ 総和 → 例えば回帰分析やニューラルネットワークなどさまざまな場面で使う
- △ 総乗 → 例えばベイズ統計などで使う
- △ 順列と組み合わせ → 確率論などで使う
- 関数:
- ◎ 2次関数/n次関数 → さまざまな計算で使う
- ○ 指数関数 → 活性化関数(例:シグモイド関数)などで使う
- ○ 対数関数 → 損失関数(例:交差エントロピー誤差)/評価関数(例:LogLoss)などで使う
- △ 三角関数 → コサイン類似度やデータセット(例:Sin波)などで使う
中学・高校数学の知識を固めたら、次は大学数学の勉強へと移りましょう。大学数学の分野では、大きく分けて線形代数、確率・統計、解析学(微分積分)の3つが基本になります。
線形代数 / 確率・統計 / 解析学(微分積分)
一般的な理系の大学では、1・2年生の一般教養科目として線形代数と微分積分を学びます。
線形代数
高校では主に幾何ベクトルを学びますが、大学数学ではより抽象化した線形空間やベクトル空間を扱い、その様々な演算を学びます。
機械学習分野と線形代数は密接に関係しています。コンピュータがどのようにしてデータを扱っているのか、コンピュータが機械学習におけるパラメータの最適化をどのようにしているのかを理解する上では、行列計算の知識が欠かせません。
- 線形代数:
- ○ ベクトル → ノルム(例:正則化)やコサイン類似度などで使う
- ○ ベクトル同士の和/定数倍/内積 → ベクトルの計算で使う
- ◎ 行列/テンソル → 複数の値や変数をまとめて扱う機械学習の演算全般で使う
- ◎ 行列同士やベクトルとの和/定数倍/積 → 行列&ベクトルの計算で使う
- ◎ 単位行列/逆行列/転置行列 → 行列の計算で使う
- △ 固有値と固有値ベクトル → 主成分分析(PCA)などで使う
解析学(微分積分)
微分は局所的な変化を扱う学問で、積分はその変化を積み重ねた量を扱う学問です。高校数学の微分・積分は、変数が少なく限られた条件下での計算でしたが、機械学習はより複雑な計算を扱います。
- 微分・積分:
- ◎極限/常微分 → 偏微分の基礎
- ◎ 偏微分/全微分 → 損失関数/目的関数の最適化(例:誤差逆伝播法)など
- ○ 初等関数(対数関数や三角関数など)の微分 → 活性化関数の微分(例:ソフトマックス関数の導関数)などで使う
- ◎ 合成関数の微分(=連鎖律) → ニューラルネットワークの誤差逆伝播法など
- △ ヤコビ行列(偏微分を行列として並べたもの) → 機械学習ライブラリ(ソフトマックス関数などで主に内部計算用)など
- △ 積分の基礎 → 確率の計算(例:確率分布の面積)など
確率・統計
機械学習を理解する上では、確率・統計の知識が欠かせません。機械学習の技術的な目標は、大量のデータを学習して予測値と実際の値の誤差を少なくすることです。確率・統計を勉強することで、そのプロセスを理論的に理解することができます。
- 確率・統計:
- ○ 平均/分散/標準偏差/期待値 → データの前処理や評価
- ○ 共分散と相関係数 → 相関関係を調べる
- ○ 確率分布 → パラメーターの初期化や正規化など
- ○ 条件付き確率/ベイズの定理 → 強化学習やベイズ推定など
- △ 最尤推定/MAP推定/ベイズ推定 → パラメーターの推定など
その他・発展的内容
機械学習に限った内容ではありませんが、一般的にIT分野やプログラミングを理解するために必要だとされている数学分野を紹介します。
「アルゴリズムとデータ構造」という分野は、コンピュータが内部で処理しているプロセスを数学的に説明する学問です。特に競技プログラミングをやっている方には馴染みがある分野なのではないでしょうか。これをもう少し一般化した数学分野が「離散数学」や「グラフ理論」です。
前節で、コンピュータの理論はもとをたどれば集合論や論理学に行きつくことを紹介しました。
このあたりのことを理解するためには、「論理回路」や「形式言語とオートマトン」、「代数学」の知識が必要です。コンピュータを根本的に理解したい人は、これらの分野の学習をおすすめします。
機械学習における数学の勉強方法
それでは、機械学習における数学のおすすめの勉強方法を紹介していきます。自分にあった勉強方法を見つけて集中的に勉強するのもいいですし、さまざまなアプローチで多角的に数学を勉強するのも良いでしょう。
機械学習を書籍で学ぶ
1つ目は本で学ぶという方法です。
本は情報の正確さや豊富さに優れています。また、自分の知識にあわせて本の難しさを選ぶこともできます。初心者向けの本は、難しい定義や数式を図やイラストを用いてわかりやすく説明されているものが多く、上級者向けの本は、詳細なことまで丁寧な説明がされていて、より数学の本質に迫る内容になっています。
本の中でも特におすすめなのが、次の6冊です。
最短コースでわかる ディープラーニングの数学
全体としては最初に習得したい「数学分野」をおおよそカバーしています。また初心者向けに図も多く分かりやすい。
やや改善してほしい点は、教科書パートの例題や演習問題が少ないようです。
後半は数学の実践活用パートとなっていて、線形回帰やロジスティック回帰、ニューラルネットワークの数学を一通り学べるので、「ディープラーニングの数学」そのものを学びたい人に役立ちます。
フェルマーの最終定理
数学の勉強をするためには、「数学の勉強が好きになること」がなにより重要です。
そこで、まず数学の勉強を好きになることにおすすめ本は、サイモン・シン著『フェルマーの最終定理』です。
本書は、数学における最大の未解決問題といわれたフェルマーの最終定理をめぐる、数百年にもわたり数学者が格闘して、最後に解いたドラマが描かれているノンフィクション作品です。
数学好き以外の方への興味が駆り立てられる魅力的な作品です。
これから本格的に数学の勉強をはじめようとする人に、まず小説として読んでほしいおすすめの一冊です。
人工知能プログラミングのための数学がわかる本
「この1冊で人工知能の数学がゼロからわかる!」と書かれた表紙の通り、この1冊だけで人工知能プログラミングに必要な中学・高校数学、大学数学を勉強することができます。
本書の後半では、pythonコードが書かれており、それを動かしてみることで、実際の人工知能の機械学習プロセスを勉強することもできます。基礎から応用まで幅広く扱う定番の1冊です。Amazonはこちら
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
この本は機械学習や、より複雑なディープラーニングに必要な数学の知識を簡単に説明しています。
具体的にどのような数式を用いて機械学習やディープラーニングのプロセスが動いているのかを実際にコードを書きながら勉強することができます。実際にエンジニアの方が読むとスムーズに理解できる内容です。
上述の2冊は機械学習に必要な数学の知識にフォーカスした本ですが、次の3冊をきっかけに数学を専門的に勉強することによって、より深い知識を得ることが可能です。
機械学習を学ぶための基礎数学
電子版のみの書籍です。数式を豊富に説明しており、ある程度上記で説明した書籍を理解した方向けです。
チャート式シリーズ大学教養 線形代数
高校数学の定番の参考書であるチャート式シリーズが2020年に出版した線形代数の参考書です。
チャート式特有の問題演習中心の参考書で、この本を一歩一歩勉強していくことで着実に線形代数の知識が身についていきます。
チャート式シリーズ大学教養 微分積分
こちらは青チャートの微分積分です。導入部分で高校数学と大学数学の橋渡しが丁寧になされています。
豊富な問題と丁寧な解説が載っているので、たくさん計算をこなすための問題集として利用することができます。Amazonはこちら
スタンフォード ベクトル・行列からはじめる最適化数学
豊富な事例を示しながら、ベクトル・行列の基本から最小二乗法による機械学習向けの数式ををていねいに解説されています。
章末に問題が298問掲載されているから、理解度チェックができます。
・Julia言語によるプログラミング課題が原著者のウェブサイトから入手
・プログラミング課題を日本語に翻訳したものを、訳者のGitHubにて無料公開
プログラミングのための確率統計
機械学習だけでなく、実際にエンジニアと呼ばれる人たちが取り組む問題には確率統計の知識は欠かせません。
この書籍は、プログラマーやエンジニアに決して易しい内容ではありませんが、丁寧な解説とプログラミングの視点からの補足説明で確率統計の知識を深めることができます。
本書は、基礎的な内容だけにとどまらず、確率統計の定義の本質にまで迫ろうとする良書です。
オンライン講座で学ぶ
2つ目はネット講座で学ぶという方法です。
勉強のペース配分を定めてコツコツ勉強したい人、いきなり本を読むのはハードルが高いと考える人におすすめです。ネット講座は無料のコンテンツだけでなく、有名講師の授業や個人指導などのサービスがついてくる有料のコンテンツが豊富にそろっています。
ネット講座の中でも特におすすめなのが、以下の3つです。
AIのための数学講座(Udemy)
Udemyは、世界中で6,000万人が利用するオンライン学習プラットフォームで、18万以上の講座が公開されています。
機械学習だけでも、800件近くの講座が開設されています。
Udemy講座の中でも特におすすめなのが、「AIのための数学講座(有料)」です。
これらの講座では、プログラミングの知識も前提にせず、中学数学程度の知識から丁寧に解説しており、AIの勉強に必要な数学の知識が動画を通じてわかりやすく解説されています。
セール中は、1,430円程度で受講できますのでおすすです。セールの最新情報はこちらをごらんください。
もしあなたが、プログラミングにも興味これらの時代に合わせた、Pythonとよばれれる高級言語(より抽象的で、クラウドサービスでもプログラムを実行できる)を用いた、「 みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習 【2021年最新版】 」がお勧めです。AIの基礎数学とプログラム実行例などで具体にAIを体験することができます。
ほかにもUdemyには機械学習に関連した講座が充実しているため、それ以外では機械学習の基礎となる統計なども、おさらいできる講座「ゼロからのおさらい 統計基礎」もおすすめです。
Chainer(チェイナー)チュートリアル
出典:https://tutorials.chainer.org/ja/tutorial.html
無料のネット講座の中でも、特におすすめできるのが「Chainer チュートリアル」です。
Chainer チュートリアルでは、機械学習に必要な数学の知識を一通り見通すことができます。
Chainer チュートリアルの強みは、数学講座で学んだことをその後のセクションでpythonライブラリの勉強をしながら実装できる点です。
また、数学の勉強をしながらデータ分析やディープラーニングの実践的なスキルを身に着けられるのもChainer チュートリアルの大きな魅力だと言えます。Chainer チュートリアルはこちら。
Sony社 Neural Network Console
ソニー社が提供するプログラミング不要の、ニューラル ネットワーク コンソール(長!!)と呼ばれるクラウドサイトです。
こちらのサービスの特徴は、初期は無料で、さまざまな学習済のデータや雛形を活用して、ご自身のデータをアップロードして15分ほどで学習結果が見れます。
詳しくは、こちらの記事を参考にしてください。
キカガク (KIKAGAKU)
出典:https://www.kikagaku.ai/
キカガクは、AIや機械学習のハンズオン形式の動画で講座を受講できるサービスです。
この講座は数学に特化した講座ではありませんが、数学も含めて機械学習全般の知識をプロの講師がわかりやすく説明してくれています。
キカガクの特徴は、個人向けではなく企業向けにたくさんの企業がクライアントやパートナーとして参加していることで、多くの企業のAI人材育成に活用されています。キカガクはこちら
オンライン動画で学ぶ
3つ目はオンライン動画で学ぶことです。
最近は、さまざまな分野の専門家たちが動画チャンネルを利用して、機械学習の基礎数学を解説しています。
日本語はやや少ないのですが、基礎数学学習のツールとして、定着しつつあります。
中学数学からはじめるAI(人工知能)のための数学入門
この動画は、特にAIをプログラミングする際に必要な数学の知識を解説しています。中学数学からわかりやすく丁寧に解説されているため、特に数学に苦手意識を持っている方におすすめです。
【9分で分かる】AI・機械学習の勉強に必要な数学の基礎を徹底解説!微積分・線形代数・確率統計
この動画は、機械学習の勉強に必要な数学知識を微積分、線形代数、確率統計の3つのパートに分けてわかりやすく解説しています。要点が短くまとまっているため、おすすめです。
また、この動画を投稿したチャンネルであるヨビノリのホームページでは、おすすめの参考書が紹介されています。他の動画と合わせてこちらも参考にしてみるといいでしょう。
AIエンジニアに必要なスキルvol.1【機械学習・数学編】
AIエンジニアに必要なスキルについて、機械学習・数学を話されています。
これがいにも、実務的な現役AIエンジニアとしてシリーズもありますので、参考になります。
Mathematics for Machine Learning [Full Course] | Essential Math for Machine Learning | Edureka
中級者向けですが、Pythonを使用したEdurekaの機械学習認定トレーニング向けに作成された英語の動画です。
英語での解説ですが、図をふんだんに入れたわかりやすく、丁寧な動画です。
このサイトをご覧の方は英語学習に興味あると思いますので、サブタイトルで英語又は日本語字幕をONにして、数学と英語を同時に学べればスキルアップにはもってこいです。
回帰、クラスタリング、決定木、ランダムフォレスト、ナイーブベイズ、Qラーニングなどのさまざまな機械学習アルゴリズムの専門知識を習得の基礎を説明しています。
英語学習の記事はこちらをご覧ください。リスニングや無料の動画コンテンツをたくさん紹介しています。
大学のオンライン講座で学ぶ
大学の講座のなかでは、一般に無料で公開されているものもあります。
基礎的な数学から、発展内容まで非常に幅広くそろっています。
大学のオンライン講座の中でも特におすすめなのが、以下の3つです。
筑波大学オープンコースウェア
出典:https://ocw.tsukuba.ac.jp/course/systeminformation/machine_learning/
筑波大学オープンコースウェアは、筑波大学で開催されている授業の内容をそのまま一般に公開している講義です。
特におすすめな講座は、佐久間淳教授の機械学習講座です。
この講座では、機械学習の理解に必要な発展的な数学を解説しています。
実際に大学で行われている講義に無料でアクセスできるため、おすすめです。シラバスの内容は以下です。
計算機による自律的な学習を目指す機械学習や, 大規模情報源からの知識発見を実現するデータマイニングの理論について, 教師付き学習, 教師なし学習を中心に理解します。
- 1. 機械学習概論と単回帰 (1)
- 2. 機械学習概論と単回帰 (2)
- 3. 重回帰 (1)
- 4. 重回帰 (2)
- 5. モデルの複雑さと汎化 (1)
- 6. モデルの複雑さと汎化 (2)
- 7. 特徴選択とL1正則化 (1)
- 8. 特徴選択とL1正則化 (2)
- 9. 決定的識別モデル (1)
- 10. 決定的識別モデル (2)
- 11. カーネル/確率的識別モデル1 (1)
- 12. カーネル/確率的識別モデル1 (2)
- 13. 確率的識別モデル2/経験損失最小化 (1)
- 14. 確率的識別モデル2/経験損失最小化 (2)
- 15. k-meansと主成分分析(1)
- 16. k-meansと主成分分析(2)
- 17. ニューラルネットワーク1 基礎とCNN (1)
- 18. ニューラルネットワーク1 基礎とCNN (2)
- 19. ニューラルネットワーク2 RNNとGAN (1)
- 20. ニューラルネットワーク2 RNNとGAN (2)
筑波大学オープンコースウェアはこちら佐久間淳教授の機械学習講座はこちら
Deep Learning基礎講座演習コンテンツ
東京大学の松尾研究室が開催しているディープラーニング基礎増の学習コンテンツです。
機械学習のなかでもディープラーニングに特化しています。Deep Learning基礎講座演習コンテンツはこちら
Courseraの機械学習講座
出典:https://www.coursera.org/learn/machine-learning
多くの海外の大学の機械学習講座がcourseraで公開されています。特に有名なものは、Stanford大学のAndrew Ng講師の講座です。
こちらの動画は中級者向けですが、61時間以上の講義ビデオが準備されており、英語のリスニングを鍛えるにはもってこいです。
シラバスは機械学習の基礎から応用まで、数学とプログラミングの両方の観点から詳細な講義を受けることができます。Courseraの機械学習講座はこちら
機械学習を実践する -エンジニア向け-
無料で実践 Colaboratory
https://qiita.com/4Ui_iUrz1/items/4c0efd9c50e344c66665
https://qiita.com/tomo_makes/items/b3c60b10f7b25a0a5935
もしあなたがITエンジニアや、興味のある方はおすすめのGoogle Colaboratory サイトがあります。
Colaboratoryは、無料で使うことができ、ほとんどの主要ブラウザで動作する、設定不要のJupyterノートブック環境です。
Googleが、機械学習の教育、研究用に使われることを目的に、無償提供しています。
ざっくりというなら、WordライクなGoogle Docs、ExcelライクなSpreadsheetといった、クラウドアプリケーションのPython/ 機械学習版で、Pythonのソースコードを対話型で実行できるだけでなく、前に挙げたアプリケーション同様、作ったものを共有したり、共同編集したりすることができます。
Jupyterというオープンソースプロジェクトは、データサイエンス、機械学習コミュニティに広く受け入れられています。古くはIPythonというプロジェクトから、2010年代に大きく成長しました。Colaboratoryは、下記の系譜でそれらから派生したものです。Webや書籍等で解説されるJupyter用のTipsも使うことができます。
詳しくは以下のリポジトリを見てください。
https://github.com/4uiiurz1/pytorch-nested-unet
AI向けの数学とPythonを基礎から学ぼう!
SAI-Lab株式会社の代表取締役。
この動画では数式の表記は、紙と鉛筆ではなく文書処理システムのLaTeXにより記述します。
これにより、数式の複製やシェアが大幅に楽になります。パソコンや電子ドキュメントでの作業が楽になります。
動画84分では以下の流れで解説します。
・プログラミング言語Pythonと数学
・機械学習の一種であるニューラルネットワーク
人工知能について勉強したいが、数学に敷居の高さを感じ、どのようにディープラーニングなどに繋げていくかがわからないといった方に、特にオススメです。
詳しくはこちらをご覧ください。
まとめ
ここまで、機械学習における数学の勉強方法について紹介してきました。
機械学習を理解するためにはかなり広範な数学の知識が必要になり、一筋縄ではいかないことも多いでしょう。
大切なことは、勉強を継続させるために無理をしないこと、適切なレベルのコンテンツを見つけて、少しづつ疑問を解いて、課題をこなしていくことです。
この記事が皆さんにあった勉強方法や目標を見つける参考になれば幸いです。
自分にあった機械学習の学び方
初心者には、独学で難しい機械学習本を1ページ目から読み始めるのはおすすめしないよ!
マットがおすすめするのは、オンラインで効率よくビデオや凝縮されたテキストでコースをざっと理解する事。
ひとはだれでも、一緒に学ぶと理解が進みモチベーションが保ちやすよね。
こちらのコースを学んだあとに、おすすめ書籍を参考書として使ってね!
マットのおすすめのオンラインコースは、Udemyなどのオンラインスクールがおすすめ。
もちろん一人で、Python入門から始まり、統計数学・シグモイド関数、ニューラルネットワークを進めてよいけど、結構大変。
セール中なら、約¥1,500円から¥10,000くらいで、13~28時間ビデオ、たくさんの記事、サンプルソース、期間制限なしで学べるよ。
まずおすすめその1は、次の順番だよ。まずはマストアイテム”Python“ヘビ!だね。このスクリプト言語は非常にシンプルで、C++やJavaと比較してもプログラミング行数が圧倒的に少なく、簡潔にかけるよ。
次におすすめその2は、Pythonを使った機械学習の入門編だね。
最後のおすすめはその3は、
Udemyの最新セール情報はこちらです。
応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です!
14577件のいいね評価で、¥24,000円で28.5時間ビデオ、10つの記事、期間制限なしで学べるよ。
学習内容
- Python3の基本の習得できます。
- 応用編の講義もありますので、簡単なアプリケーション開発に必要なスキルを習得できます。
- Pythonicなコードのスタイルを身に付けることができます。
このコースでは、Python3の基礎である入門コースを一通り終えた後に、今後のアプリケーション開発に役立つためのPythonのテクニックやデーターベースアクセス(SQLite, MySQL, MongoDB, SQLAlchemy, memcached, Hbase, neo4j etc)、WEB(Flask, socket, RPC etc)、インフラ自動化(Fabric, Ansible)、並列化(スレッド、マルチプロセス)、テスト(Unittest, pytest, Tox, Selenium, etc)、暗号化(pycrypto, hashlib)、グラフィック(turtle, Tkinter)、データ解析(numpy, pandas, matplotlib, scikit-learn), キューイングシステム(ZeroMQ, Celery)、非同期処理(asyncio)などのPythonを使った応用編を取り入れているよ!
このおすすめでは、Udemyなどのオンラインスクールの、Pythonで学ぶ人工知能と機械学習が推し! ひとりで統計数学・シグモイド関数、ニューラルネットワークを進めてよいけど、結構大変。そんな君には、今なら¥15,000円で13時間ビデオ、7つの記事、6個のサンプルソース、期間制限なしで学べるこのコースがおすすめ!
学習内容
このコースで学べるのは、
- 簡単な機械学習のコードを書けるようになります。
- Pythonの基礎的なプログラミング技術が身につきます。
- ビジネス上必要な人工知能の基礎知識が身につきます。
- 有名な機械学習ライブラリが扱えるようになります。
- 機械学習と関連した簡単な数学の知識が身につきます。
- 人工知能全般についての知識が身につきます。
おすすめ その3 -ゼロからのおさらい 統計基礎-
このおすすめは、Udemyなどのオンラインスクールがおすすめ。もちろん一人で、Python入門から始まり、統計数学・シグモイド関数、ニューラルネットワークを進めてよいけど、結構大変。
今なら¥10,200円で2.5時間ビデオ、1つのダウンロード可能なリソース、期間制限なしで学べるよ。
初心者向けで機械学習に必須の統計を一気に復習するコースです。プログラミング言語Python以外にも、機械学習で頻出するキーワードが統計です。プログラミングの基礎以外にも必要な数学を勉強しましょう!
学習内容
このコースで学べるのは、何となく分析をしているけれど、これで本当に合っているのだろうか…?
部下の持ってきたデータをそのまま信じていいものか。経営判断がしづらい…。
そんな悩みを持つかたにぜひおすすめしたい、統計学の入門講座です。
数学が苦手でも大丈夫。統計学の基礎をゼロから身につけていきます。
エクセルを使った練習問題で、明日から使える分析手法を身につけましょう。
- 統計学の考え方をもとに正しいアプローチでデータを分析し、意思決定に寄与できるようになります。
機械学習を学ぶには、Google Colaboratoryに代表される開発ツール以外にも、さまざまな環境、言語(python,C++,Java)になれたほうがよいよ。下の図はAIで使われている言語、データベース、ツールなどだよ。
Google Colaboratory に慣れた後は、ローカルやクラウドサーバー側でさまざまなツールや、データを学習させたり、推論させたりしてみよう。
- 【8インチから10.1インチの大画面】1080pフルHD、224ppi解像度の鮮やかなディスプレイ
- 【最大12時間の長稼働バッテリー】USB-C(2.0)接続で充電も簡単
- 【3から4GB RAM】オクタコアプロセッサ搭載
- 【ワイヤレス充電】ワイヤレス充電スタンド(別売)を使えば、タブレットをShowモードで充電しながらAlexaを使ってハンズフリーでタブレットを使用することができます。
- 【2画面表示機能】ショッピングをしながらメール確認などの二つのアプリが同時操作可能
- 【HDビデオ通話】AlexaアプリやZoomアプリをお持ちの友人や家族と高画質でビデオ通話が可能
- 【Alexa搭載】Alexaに話しかけるだけで動画、音楽、Alexa対応家電など簡単操作
- 【エンターテイメント】NetflixやDAZNなどの人気のアプリに加えて、映画やドラマ、音楽や電子書籍まで数千万を超える様々なコンテンツもこの一台で
初心者向け 用語集
ニュースでよく聞く、難しい言葉やAI用語を整理するよ。
人工知能(AI)
一般的に、AIとは、人間のように働き、反応する知的な機械を作ることに重点を置いたコンピュータサイエンスの分野です。AIを、人間が行う際に知能を必要とすることを可能にする機械を構築することを目的とした、コンピュータサイエンスの多くの技術要素をまとめた幅広い用語。これらの分野には、次に説明する機械学習、深層学習、コンピュータ・ビジョン、自然言語・音声処理、コグニティブ・コンピューティング、ロボティック・プロセス・オートメーション(RPA)などがあります。
機械学習
機械学習とは、コンピュータシステムが、プログラムされた特定の指示に従わなくても、データに触れることでパフォーマンスを向上させる能力のこと。言い換えれば、機械学習とは、大量のデータの中から自動的にパターンを見つけ出し、それをもとに予測やより良い情報に基づいた意思決定を行うプロセスのことだよ。
ディープラーニング(深層学習)
ディープラーニングは比較的新しい強力な技術で、ある層からの出力が次の層の入力となるようなディープニューラルネットワークで情報を処理するアルゴリズム群を含むよ。”深層学習アルゴリズムは、がん細胞の検出や病気の予測などで大きな成果を上げているよ。
コンピュータビジョン
画像を扱いやすいように分析し、画像内の物体のエッジやテクスチャーを検出し、他の既知の物体と比較して分類する技術を用いて、写真内の物体、シーン、活動を識別するコンピュータが持つ能力のこと。基本的には、コンピュータビジョンは、画像や多次元データから情報を得る人工的なシステムを構築するための理論と技術だね。
自然言語/音声処理。人間と同じようにテキストや言語を扱うことができる能力のこと。
事例:テスラモーターズの自動運転。ナンバー読み込み。アマゾンの無人倉庫向け運搬ロボット。アップル社のSiri。
コグニティブ・コンピューティング
IBM社が提唱するコグニティブ・コンピューティングは、認知科学の知識を応用して、機械学習、自然言語処理、視覚、人間とコンピューターのインタラクションなど、複数のAI手法をまとめてアーキテクチャを構築し、人間の思考プロセスをシミュレートすることで、複雑な状況下でより良い意思決定を行うことを目的としています。コグニティブ・コンピューティングの目的は、人間に代わって意思決定を行うのではなく、人間がより良い意思決定を行えるように作られているよ。
事例:IBMワトソン(コンピュータ)を活用した例。自動受け答え機能。知識検索など。
出典:IBM
ロボティック・プロセス・オートメーション(RPA)
RPAは、ビジネスオートメーションにおける有望な新展開であり、2018年に非常に人気が高またね。IBMはこれを、プロセスやビジネス上の意思決定の自動化、データ取得の取り組みなど、より広範な自動化の取り組みと容易に統合し、自動化プログラムの価値を拡大できるソフトウェアと定義しているよ。
RPAは、トランザクションの処理、データの操作、応答のトリガー、他のデジタルシステムとの通信など、既存のビジネス・プロセス・マネジメント(BPM)アプリケーションを自動的に取り込み、解釈するように構成されているよ。エンタープライズ・オートメーション・ツール(BPMなど)との主な違いは、RPAが人間のオペレーターではなく、ソフトウェアや認知ロボットを使ってプロセス操作を行い、最適化するよ。
RPAとAIの違いを一言で表すと、「自己学習能力」の有無だね。AIには自己学習機能があるけど、RPAはあくまで指示通り(プログラム)に忠実に動くよ。
事例:三菱UFJによる、事務処理自動化(200業務)で9500人分削減。
DNNは、ディープラーニングでよく用いられる4つの手法のひとつだよ。
人工知能(AI)
一般的に、AIとは、人間のように働き、反応する知的な機械を作ることに重点を置いたコンピュータサイエンスの分野です。AIを、人間が行う際に知能を必要とすることを可能にする機械を構築することを目的とした、コンピュータサイエンスの多くの技術要素をまとめた幅広い用語。これらの分野には、次に説明する機械学習、深層学習、コンピュータ・ビジョン、自然言語・音声処理、コグニティブ・コンピューティング、ロボティック・プロセス・オートメーション(RPA)などがあります。
機械学習
機械学習とは、コンピュータシステムが、プログラムされた特定の指示に従わなくても、データに触れることでパフォーマンスを向上させる能力のこと。言い換えれば、機械学習とは、大量のデータの中から自動的にパターンを見つけ出し、それをもとに予測やより良い情報に基づいた意思決定を行うプロセスのことだよ。
ディープラーニング(深層学習)
ディープラーニングは比較的新しい強力な技術で、ある層からの出力が次の層の入力となるようなディープニューラルネットワークで情報を処理するアルゴリズム群を含むよ。”深層学習アルゴリズムは、がん細胞の検出や病気の予測などで大きな成果を上げているよ。
コンピュータビジョン
画像を扱いやすいように分析し、画像内の物体のエッジやテクスチャーを検出し、他の既知の物体と比較して分類する技術を用いて、写真内の物体、シーン、活動を識別するコンピュータが持つ能力のこと。基本的には、コンピュータビジョンは、画像や多次元データから情報を得る人工的なシステムを構築するための理論と技術だね。
自然言語/音声処理。人間と同じようにテキストや言語を扱うことができる能力のこと。
事例:テスラモーターズの自動運転。ナンバー読み込み。アマゾンの無人倉庫向け運搬ロボット。アップル社のSiri。
コグニティブ・コンピューティング
IBM社が提唱するコグニティブ・コンピューティングは、認知科学の知識を応用して、機械学習、自然言語処理、視覚、人間とコンピューターのインタラクションなど、複数のAI手法をまとめてアーキテクチャを構築し、人間の思考プロセスをシミュレートすることで、複雑な状況下でより良い意思決定を行うことを目的としています。コグニティブ・コンピューティングの目的は、人間に代わって意思決定を行うのではなく、人間がより良い意思決定を行えるように作られているよ。
事例:IBMワトソン(コンピュータ)を活用した例。自動受け答え機能。知識検索など。
出典:IBM
ロボティック・プロセス・オートメーション(RPA)
RPAは、ビジネスオートメーションにおける有望な新展開であり、2018年に非常に人気が高またね。IBMはこれを、プロセスやビジネス上の意思決定の自動化、データ取得の取り組みなど、より広範な自動化の取り組みと容易に統合し、自動化プログラムの価値を拡大できるソフトウェアと定義しているよ。
RPAは、トランザクションの処理、データの操作、応答のトリガー、他のデジタルシステムとの通信など、既存のビジネス・プロセス・マネジメント(BPM)アプリケーションを自動的に取り込み、解釈するように構成されているよ。エンタープライズ・オートメーション・ツール(BPMなど)との主な違いは、RPAが人間のオペレーターではなく、ソフトウェアや認知ロボットを使ってプロセス操作を行い、最適化するよ。
RPAとAIの違いを一言で表すと、「自己学習能力」の有無だね。AIには自己学習機能があるけど、RPAはあくまで指示通り(プログラム)に忠実に動くよ。
事例:三菱UFJによる、事務処理自動化(200業務)で9500人分削減。