機械学習に使う基礎的な数学を勉強したい...
今回は、人工知能の中に含まれる機械学習に必要な数学の知識を中心に勉強することができるUdemy のキカガク流 人工知能・機械学習脱ブラックボックス講座〜初級を受講したので、その概要と感想を紹介します。
僕自身は文系の非エンジニアであり、数学も最低限しか勉強していません。
しかし、今回紹介するキカガク流 人工知能・機械学習脱ブラックボックス講座〜初級は手書き中心の講座で、順番にそれぞれの意味や役割、なぜビジネスの中で必要なのかを学ぶことができます。
- 機械学習の参考書を読んで「閉じて」しまった方
- 独学で機械学習を学ぼうと思ったけど挫折してしまった方
- 機械学習の参考書に記載された数式の意味が理解できず、学習をやめてしまった方
- 中学校で学ぶ数学から始めるので初心者の方、数学が苦手な方でも大丈夫
このような方が講座の対象となっています。
- 学習サイト/アプリのUdemyのpython講座で大人気のキカガク初級編を実際に受講してみた!
- Pythonを勉強するのに最適なUdemyとは?学習サイト/アプリとして最適
- まとめ:pythonを使って機械学習を勉強するのは学習サイト/アプリのUdemyで決定
学習サイト/アプリのUdemyのpython講座で大人気のキカガク初級編を実際に受講してみた!
キカガク流 人工知能・機械学習脱ブラックボックス講座〜初級では、機械学習で必要な数学のエッセンスがたくさん詰まっている「単回帰分析」をゴールに、機械学習の考え方、微分、単回帰分析まで一気通貫で解説されています。
数学は中学校の復習から始まり、Pythonの環境構築、pythonの基本的なプログラミング文法も開設されているため、初めての方でも手軽に学べる内容となっています。
今回は初級ですが、中級編・上級編とステップアップしながら学ぶことで、データ解析の実務に必要なスキルと考え方が学べる構成となっています。
学べる内容はざっくりと、人工知能の概要、最低限の数学知識、単回帰分析
キカガク流 人工知能・機械学習脱ブラックボックス講座〜初級で学べる内容は大きく3つになります。
1. 人工知能の概要
2. 機械学習に必要な最低限の数学知識
3. 単回帰分析とその可視化
機械学習の概要として、人工知能・機械学習・ディープラーニングなどを体系的に理解
人工知能の概要とは、人工知能(AI)>機械学習>ディープラーニングなどといった言葉がどのような関連を持っているのかを紹介していきます。
その上で機械学習が何を指しており、どのようなことが可能なのかを勉強します。
機械学習とは何らかの入力から、関連した出力を結びつける学習を行うことです。
その学習したモデルを利用して、何らかの入力から予測した出力を出すことを最終的なゴールとしています。
機械学習に必要な最低限の数学をグラフを使って学習
機械学習に必要な数学は主に3つあります。
1. 微分・積分
2. 線形代数
3. 確率・統計
そして機械学習には3つのトピックがあります。
- 教師あり学習
- 教師なし学習
- 強化学習
このような3つの中でも、特に教師あり学習がビジネスでは最も利用されます。
教師あり学習で特に利用するのが、微分と線形代数になります。
今回は単回帰分析による予測をゴールとするため、それに必要な微分を勉強していきます。
接線の傾き「0」を求めることで、最小or最大の点を求めることができる
更に変数を複数持った予測を行いたい場合もあります。
その際には偏微分が必要となります。
偏微分とは、指定した値以外を定数だと仮定して微分することです。
数学知識を利用した単回帰分析
単回帰分析を行うためには大きく2つのフェーズに分かれています。
1. 学習フェーズ
2. 推論フェーズ
この2つのフェーズが機械学習の大きな流れとなります。
Step1. 「モデル」を決める
Step2. 「適切」を決める
Step3. 評価関数を「最小化」する
- Step1. 「モデル」を決める
教師あり学習では、データを大まかに眺めてモデルを人間が指定してあげる必要があります。
そのモデルを「適切」に決定することが、学習モデルの精度を左右します。
そのモデルを作成する際に、計算を楽にするためにデータの中心化を行うことで計算の工数を減らすことができます。
- Step2. 「適切」を決める
モデルの「適切」を決定するために、「評価関数(損失関数)」を決める必要があります。
評価関数は、実績値と予測値の誤差を計算することが目的となります。
評価関数はLで表すのですが、基本的には二乗誤差で表すことが一般的です。
そして各データの数分だけ誤差を計算するために、Σ(シグマ)を利用します。
- Step3. 評価関数を「最小化」する
最後に評価関数が「最小化」する点を探します。
評価関数Lを傾きaで偏微分することで最小点を求めることができます。
数学知識×pythonを利用した単回帰分析
キカガク流 人工知能・機械学習脱ブラックボックス講座〜初級の動画に従ってMac/Windowsにpythonの環境構築を行います。
環境構築を行ったらJupyter Notebookを起動して、実際にコード記載していきます。
まずはpythonを利用した簡単な計算の復習です。
まずはnumpyというpythonのライブラリを利用して、数値計算を行なっていきます。
numpyを利用して、ベクトルの定義をするときは、
np.array([1,2,3])
のように、arrayを利用します。
次にデータの中心化を行います。
x.mean()
mean()を利用することで、値の平均を瞬時に計算することが可能です。
上記のStep3で評価関数を「最小化」した時に利用した「a = ~」というものを利用すると、
a = xy.sum()/xx.sum()
pythonではpandasを利用することで、簡単にcsvファイルを取り込むことができます。
df = pd.read_csv("file_name")
とすることで、綺麗にcsvファイルを読み込むことができます。
x = df["x"] y = df["y"]
これらは、df(data frame)の中の各カラムをそのまま抜き出して代入しています。
matplotlibを利用することで、グラフを描画することができます。
plt.scatter(x,y) plt.show
scatterとは散布図のことです。
matplotlib.pltはshowを利用することで、実際にグラフを表示することができます。
いよいよ実際のデータを利用して単回帰分析を実装していきます。
df.describe()
を利用することで、
- 合計
- 平均
- 標準偏差
- 最小
- 最大
などを表示することができます。
pythonを利用してデータを中心化する際には、
df_c = df - df.mean()
と行うことで、x,y共に中心化が可能です。
上記で傾きaを出したように傾きを出して、プロットすると以下のようになります。
plt.scatter(x,y,label="y") # 実測値 plt.plot(x,a*x,label="y_hat", color="red") # 予測値 plt.legend() # 凡例の表示 plt.show()
ここまでで学習モデルが作成できました。
次は学習モデルを実際に利用して、予測値の計算をしていきます。
予測モデルを利用するために、予測したい値を中心化した上で、単回帰分析による予測を行います。
そして実際に予測された値は中心化されているため、平均を足してあげることで、y_hat(予測値)を計算することができます。
これによって、x(入力)を行うことでy(出力)を出すことができました。
毎回このような計算をするのは面倒なので、予測を行う関数を作成します。
ここではa,xm,ymを固定して計算しています。(楽にするために)
最後にreturnで数値を返してあげることで、予測値を計算する関数の作成が完了です。
修了証を貰って気持ちよく終了
最後はUdemy特有の修了証明書をもらって講座修了です。
Pythonを勉強するのに最適なUdemyとは?学習サイト/アプリとして最適
Udemyとは2010年にスタートしたオンライン動画を活用した学習プラットフォームです。
日本では進研ゼミなどを運営する教育大手のベネッセホールディングスが担当しています。
2015年以降日本語での受講可能講座が増えてきており、学習者も増加傾向にあります。
また学習をどこでも行うことができるように、Udemyのアプリも登場しています。
Udemy - Online Courses
Udemy無料posted withアプリーチ
Udemyは30日間の全額保証期間が付いており、万が一自分が期待した内容とは異なる場合でも返金対応を行うことができます。
動画コンテンツは購入後はダウンロードすることも可能なため、オフライン状態や通信制限を気にする必要もありません。
まとめ:pythonを使って機械学習を勉強するのは学習サイト/アプリのUdemyで決定
pythonを利用した学習以外にも、様々なプログラミン言語や最近ではヨガやadobeシリーズの学習までできるUdemy。
僕も独学でpythonを勉強していますが、本では体系的に知識を整理しながら、実際にUdemyの動画を見ながら手を動かすことでできることが増えています。
ぜひUdemyで自分にあった講座を見つけてスキルアップを図りましょう!
pythonを使った他の学習講座はこちらでも紹介しています。