見出し画像

要約:機械学習の入門本

図解即戦力 機械学習&ディープラーニングの仕組みと技術がこれ1冊でしっかりわかる教科書

機械学習の入門書を1冊読みましたので、その内容をちょー簡単に要約します。

最近、某海外イベントに参加し、機械学習 or Die !!という状況を知り。とりあえず読んでみるには良い本ということでうちのメンバーからおすすめがあり。図解!これなら簡単そう~理解できそうね。

1章:人工知能の基礎知識

人工知能の定義はあいまいで難しい。そのため用途別に分けて考える。機械学習は人工知能の手法の一つでデータを分類したり、データの傾向を見たり(回帰)するのに使うことができる。機械学習では人間が学習のためにデータをあらかじめ加工(特徴の強弱を示す数値=特徴量を数学的に算出)しておく必要がある(これが結構むずかしい)。一方、ディープラーニングはその必要が無い(特徴量を自動的に算出してくれる)ということで画期的な手法となった。ディープラーニングは画像認識分野(この画像は猫ですか?的なもの)において人間をすでに上回っている状況。ちなみに人口知能が流行るのはこれで3回目(第3次人工知能ブーム)。

2章:機械学習の基礎知識

機械学習の手法について。「教師あり学習」はラベル付き(正解)の学習データを用意して学ばせることで、ラベルが無いデータに対しても【分類】や【回帰】ができるようにする手法。「教師なし学習」は逆に正解データを与えずに分類分けをさせる手法。教師なし学習ではデータを特徴の似ているグループに分ける【クラスタリング】や、データの中から重要な情報だけ抜き出してあまり重要でない情報を削除する【次元削減】を行うことができる。「強化学習」は教師なし学習と同様に正解データを与えない手法で、試行錯誤を繰り返しながらそれぞれの結果の評価とフィードバックを行うことで最適な行動を学習させる手法。統計と機械学習は似ているが、統計はデータの根拠を説明するための分野であるのに対し、機械学習は予測データを作成するための分野といった違いがある。機械学習において、アルゴリズムの性能向上にはどんな特徴量を入れるかが大きく影響するが、従来は特徴量を人が設計しなければならない点がボトルネックとなっていた。ディープラーニングの登場により(発展途上ではあるものの)、特徴量の抽出自体もアルゴリズムで自動的に行うことができるようになった。機械学習は、十分な量の定量的な過去データが存在し、推論過程が理解不能でも構わない(説明責任を要求しない)ものに有用。現在実用化が進められている分野としては、自動車の自動運転、交通管制(信号機切り替え)、金融商品のリアルタイムトレード、資産運用、商品のレコメンドなどがある。

3章:機械学習のプロセスとコア技術

機械学習のシステム開発は最初に全体設計として、①問題の定式化、②システム設計、③データの収集を行い、次に機械学習の設計として④機械学習アルゴリズムの選択、⑤データの整形と特徴量エンジニアリング、⑥モデルの学習、⑦予測結果の検証と評価、⑧ハイパーパラメータのチューニング、この④~⑧を繰り返し行った上で、最後に⑨システム運用を行う、という流れとなる。試行錯誤が不可欠であることに留意する必要がある。③データの収集については自身が保有するデータを活用する以外にもオープンデータを活用する、Web APIやスクレイピングでデータを収集するなど様々な方法がある。⑤データの整形においてはデータをカテゴライズして数値化する、指数・対数・範囲などに基づいて数値化するなど、機械学習アルゴリズムが処理しやすい形式に変換を行う。⑧ハイパーパラメータとはモデルを何次元の式にするのかを決める大枠のこと。

4章:機械学習のアルゴリズム

機械学習のアルゴリズムには【回帰分析】【サポートベクターマシン】【決定木】などがある。回帰分析はデータに最もフィットする線を引くこと、サポートベクターマシンはデータを最も引き離す線を引くこと、決定木はYes/Noで答えられる条件によって予測を行うことに利用する。また複数のモデルの出力結果を合体することで高精度なモデルを実現する【アンサンブル学習】という手法もある。アンサンブル学習はディープラーニングに比べてより少ないデータで学習が可能。これら以外にも、主に分類に使用される【ロジスティック回帰】、正解である確率を求める【ベイジアンモデル】、時系列分析に利用する【状態空間モデル】、分類に利用される【k近傍(k-NN)法】、クラスタリングに利用される【k平均(k-means)法】、データを要約する【次元削減】、ある条件下での最大/最小の解を求めるのに利用される【遺伝的アルゴリズム】などのアルゴリズムが存在する。

5章:ディープラーニングの基礎知識

ニューラルネットワークとは人間の神経回路の構造をモデル化したネットワークのこと。例えば画像認識では画像の数値データのパターンを機械に把握させるが、ディープラーニングではそのパターンを自動で探すことができる。また機械翻訳では自然言語の形態素解析を行った結果に対しフレーズごとのパターンを把握して対訳に変換させることで自然な翻訳を実現している。

6章:ディープラーニングのプロセスとコア技術

ニューラルネットワークの学習において【誤差逆伝播法】が良く用いられる。入力から出力へ情報が伝わる流れを【順伝播】というが、ニューラルネットワークの学習では出力に対して正解を与え、出力と正解との差を最小化させるようにモデルを最適化(学習)させる。これを誤差逆伝播法という。

7章:ディープラーニングのアルゴリズム

ディープラーニングのアルゴリズムとしては画像認識で利用される【畳み込みニューラルネットワーク(CNN)】、自然言語処理で利用される【再帰型ニューラルネットワーク(RNN)】、チェス・将棋・囲碁などでの活用で有名となったある環境における最適解を求めるための【強化学習】、データの圧縮やノイズの削除などに利用される【オートエンコーダ】、データを学習することで新しいデータを生成できる【GAN(敵対的ネットワーク)】、画像の中から特定の物体やラベルを検出する【物体検出】などがある。

8章:システム開発と開発環境

機械学習のシステム開発で利用されている主なプログラミング言語は多い順にPython、R言語、Javaとなる。Pythonはライブラリが充実しており、またスクリプト言語であることからTry&Errorによる開発が容易であることが人気の理由となる。R言語もライブラリが充実していること、研究開発分野での利用が多いことが人気の理由となる。Javaは開発ベースが大きいことから機械学習の分野でもよく利用されている。機械学習では①データの取得、②前処理、③機械学習といった処理フローを取るが、それぞれの処理に対してライブラリが存在するためそれらを活用することが可能。ディープラーニングについてもTensorFlow、Keras、PyTorchなどのフレームワークが存在するためこれらを利用して開発を行う。最後に、機械学習ではタスクの実行に大量の計算処理が発生するため、GPUを利用することで処理時間を短縮する手法もよくとられている。また同様にGCP、AWS、Azureなどのクラウドサービスもよく利用さている。

というわけで簡単な要約でした。


この記事が気に入ったらサポートをしてみませんか?