機械学習入門

【機械学習入門①】初心者でも分かる機械学習の概要と4つの分類

機械学習入門① 機械学習とは
機械学習を勉強したい人
機械学習を勉強したい人
  • 機械学習を学んでみたいけど、何から勉強したら良いのか分からない
  • 機械学習の本を買ってみたけど、よく分からなくて挫折した
  • そもそも本を買うのではなく、まずは無料で学習してみたい

上記のような悩みを持っていませんか?

 

僕自身、機械学習を学び始めたとき、体系的にまとまった記事がなくて苦労した経験があります。

「機械学習って、何から始めたら良いんだろう…」とか「どういう順番で勉強したら良いんだろう…」といった感じで、勉強する前から悩みが続出していました。

 

そんな僕の苦労経験を元に、この『機械学習入門シリーズ』を作成しました。

 

機械学習入門シリーズ』は、「初心者から機械学習アルゴリズムの『理解』と『実装』をできるようになる」ために必要な、機械学習入門を体系的にまとめた記事です。

 

そんな第1回目の本記事では、以下の内容を扱っていきます。

  • 機械学習の概要
  • 機械学習が流行し始めた3つの理由
  • 機械学習における4つの分類
  • 機械学習を学ぶ上で必要になる3つの知識

 

できるだけ初心者でも分かりやすいような説明・表現を意識して作成しています。

この記事を読み終えれば、機械学習の概要についてマスターできるようになりますよ!

 

【初心者OK】機械学習の概要を1分でおさえる!

機械学習入門①

 

“機械学習”という言葉が厄介なのは、明確な定義が決まっていないことです。色々な書籍をみると分かりますが、みんなバラバラの表現を使っているはず。

 

ですが、ここでは以下のように定義します。

  • 機会がデータから『ルール』を発見して、『予測・分類』できるようにする
  • AI(人工知能)を作るための技術

 

『機械学習』とは、機械へデータを渡すと自動的にルールを決めて、物事を予測したり判断したりできるようにする技術です。

 

と言ってみたものの、、、おそらくこれだけだと分かりづらいですよね。

そこで、機械学習とセットで出てくる概念と比較しつつ、もう少し深掘りしていこうと思います。

 

機械学習と人工知能の違いは?

 

機械学習とセットで、『人工知能』という言葉がよく出てきます。

では、両者の違いはどこにあるのでしょうか?

 

それを表したのが、以下の図です。

機械学習入門①

機械学習は、あくまでも”人工知能を作る技術の1つ“です。

なので上図のように、機械学習より大きな枠組みに、人工知能という概念が存在します。

 

最近だと、機械学習と人工知能は、混同して使われることが多いですね。

 

はやたす
はやたす
僕は、『人工知能』という言葉が少し曖昧なので、積極的に『機械学習』を使うようにしてるよ!

あくまでも「人工知能を作る手段の1つが、機械学習なんだ」と覚えておきましょう。

 

人工知能を実現する2つの手段

 

機械学習が「人工知能を作る技術の”1つ“」と強調しているのには、理由があります。

 

それは、人工知能を作る技術が他にもあるからです。

機械学習入門①

 

機械学習が登場する以前は、「ルールベース」によって人工知能が作られていました。

▼ルールベース

「もし〇〇だったら▲▲をする」といった条件に基づくこと。

つまり、ルールベースで作られたシステムというのは、「もし〇〇だったら▲▲をする」が繰り返されて作られたシステムのことです。

ルールベースはその特性上、単純な判定をするときに有効です。

 

たとえば、りんごと梨を判断するとき。

以下の図のように、一本の直線を引いてあげれば判断できますよね。

機械学習入門①

こういった複雑でない処理をするのに、ルールベースは適しています。

他にも、FXの自動売買で使われるAIも、ルールベースに基づいて作成されますね。

 

でも、現実問題を考えると、、、こういった感じで「簡単に判断できる場面」って、かなり少ないです。

ほとんどの場合で、複雑な処理をしたり、大量のルールを設定してあげる必要があります。

 

こうした問題に対処するために登場したのが『機械学習』です。

なので、いま「人工知能を作る」といったら、それは「機械学習を使っている」と考えて差し支えないですね。

 

人工知能を作る2つの手段
  • 機械学習 : 複雑な処理・大量のルール設定が必要なときに有効 ←Now!!
  • ルールベース : 単純な処理をするときに有効(FXの自動売買など)

 

機械学習とディープラーニングの違い

 

さらに機械学習とセットで、「ディープラーニング」という言葉もよく耳にします。

ディープラーニング(=深層学習)とは、機械学習の1種です。

 

図で表すと、以下のようになります。

機械学習入門①

 

なので、ディープラーニングと機械学習は、『別物』というわけではありません。

ディープラーニングも、機械学習です。

 

ただ、ディープラーニングは、概念の理解や必要になる知識が多いがゆえに、学ぶべきことがたくさんあります。

勉強量で言うなら、『ディープラーニング』と『他の機械学習アルゴリズム』で同じくらいかなと。

 

この入門講座では、あくまでも「ディープラーニング以外の機械学習」に焦点を置いて学習していきます。

※ディープラーニングは機械学習の1種なので、その他機械学習をおさえておくと理解しやすいからです。なお、ディープラーニング入門も開講予定です。

 

機械学習が流行し始めた3つの理由

 

なぜ機械学習が流行し始めたのか。理由は以下の3つです。

  • ビッグデータの登場
  • マシンスペックの向上
  • 機械学習アルゴリズムの進化

順番に確認していきます。

 

理由① : ビッグデータの登場

 

そもそもビッグデータってなんだよ…」って感じですよね。

ビッグデータは、以下の特徴を持っています。

  • ①データの量(Volume)
  • ②データの種類(Variety)
  • ③データの更新頻度(Velocity)

おそらく、一般的に考えられるビッグデータは、『データの量(Volume)』なのかなと思います。

でも、ビッグデータは他にも『データの種類』や『データの更新頻度』といった意味を持ちます。

 

たとえば、機械学習で「クレジットカードの解約」を予測したいと思ったとき。

今までは利用履歴から予測していたけど、会員ページのログイン数や上限変更回数といった『データの種類』を増やすことが考えられます。

また、こういったデータは、常にアップデートされていきます。顧客がカード利用上限を変更した瞬間、そのデータを利用可能です。

 

要するに、ビッグデータは「常に更新されていく縦にも横にも大きいデータ」です。

イメージでいうと、以下の図のようになっていますね。

機械学習入門 ビッグデータ

薄くなっている部分がビッグデータ登場前、濃い赤枠がビッグデータのイメージです。

 

そして、『②データの種類』と『③データの更新頻度』から分かるかもしれませんが、ビッグデータが登場したのは、「インターネットのおかげ」です。

インターネットが登場して、あらゆるデータが簡単に手に入ったことで、ビッグデータを入手しやすくなりました。

 

機械学習は、基本的に①データの量と②データの種類(=機械学習の用語で言うと特徴量)に左右されます。

良質で大量のデータを与えてあげると、うまく機械学習して優れたAIを作れるようになります。

 

理由② : マシンスペックの向上

 

ただ、ビッグデータを処理するには、それなりの計算機が必要になります。

低スペックのマシンでも処理できないことはないですが、、、かなりの時間が必要です。それこそデータ量によっては、1回の機械学習で、1日とか1週間かかってしまいます。

そうなってくると、せっかくのビッグデータが宝の持ち腐れですよね。

 

でも、マシンスペックは、毎年のように向上しています。

さらに、スペックが向上するだけでなく、マシンの価格も下がってきていますね。

 

これが、機械学習の流行している理由です。

今では、ビッグデータを処理できるくらいのマシンを、以前と比較すると安価で手に入れられます。

 

理由③ : 機械学習アルゴリズムの進化

 

ディープラーニングを中心に、アルゴリズム自体が進化していることも、機械学習が流行している理由・原因になります。

 

特に画像認識の分野では、実用的なモデルが数多く登場しています。

少し前に登場したモデルになりますが、YOLOv3というディープラーニングを進化させたモデルでは、かなり正確にヒトや信号を認識できています。

YOLOv3 結果

 

深層学習の分野では、このような最新モデルが数ヶ月に一回登場します。

 

そして最新のモデルは、旧モデルより性能に優れています。

つまり常に進化し続けている機械学習モデルが登場するので、それに伴ってAIを活用する勢いも加速していくんですね。

 

機械学習における4つの分類

機械学習入門①


機械学習は、目的に応じて4つに分類されます。

機械学習入門①
  • 教師あり学習
  • 教師なし学習
  • 強化学習
  • 生成モデル

 

この講義では、中でも『教師あり学習』と『教師なし学習』について扱っていきます。

その理由は、機械学習を活用する上で、上記2つが頻繁に使われるからです。

 

強化学習や生成モデルも使われないことはないですが、、、研究開発に利用されるケースが多いです。

それゆえ、機械学習分野への転身を考えたとき、活躍できる幅が減ってしまいます。

  • 教師あり学習・教師なし学習 : AI企業だけでなく事業会社もイケる
  • 強化学習・生成モデル : AI企業・超大企業の研究開発に限られる

上記のとおりです。

 

それに、『教師あり学習』と『教師なし学習』が分からないと、他2つのモデルの理解がしづらいかなと。

なので、まずは機械学習の基本となる、『教師あり学習』と『教師なし学習』から勉強していきましょう。

 

※それぞれの違いについては『教師あり学習と教師なし学習の違いとは?』をどうぞ。具体例も合わせて、解説しています。

 

機械学習を学ぶ上で必要になる3つの知識

機械学習入門①

 

機械学習を学んでいくには、以下3つの知識が必要になります。

  • Python
  • 数学
  • 機械学習ライブラリ

 

必要な知識① : Python

 

機械学習を実装するには、プログラミング言語Pythonの知識が必要になります。

他のプログラミング言語だと、JuliaやR言語でも、機械学習の実装が可能です。

 

でも、僕がフリーランスで色々な案件に参画したり、色々な企業さんの話を聞いている体験談から考慮すると、習得すべきはPythonかなと。

「Rを使っているけどPythonに移行したい」という意向を持っている企業さんもあったので、他の言語よりPythonを使うのが良いかなと思いますね。

 

しかもPythonを習得しておくと、機械学習以外にもバックエンドエンジニアの道が拓けます。

要するに、Pythonで機械学習を学ぶのは、一石二鳥ってことです。

 

どうせ勉強するなら他の場面でも役に立った方が良いので、この講義でもプログラミング言語はPythonを使っていきます。

 

必要な知識② : 数学

 

機械学習のアルゴリズムを理解する上では、数学の知識も必須です。

 

より具体的に言うなら、以下の数学が必要になります。

  • 統計学
  • 微分積分
  • 線形代数
  • 最適化理論

ただし、上記をすべて理解しようとすると、キリがないです。

 

なので本講義では、できるだけ数式を簡潔に。

もし事前知識が必要になる場合には、こちらで「この説明なら分かりやすいかな」と感じるページのリンクを貼っておきます。

はやたす
はやたす
数学の知識がなくても、安心して勉強し始めて大丈夫だよ!

 

必要な知識③ : 機械学習ライブラリ

 

最後に必要にあるのが、Pythonに含まれる機械学習ライブラリの取り扱いです。

本講座で使っていく機械学習ライブラリは、scikit-learn(サイキットラーン)になります。

 

機械学習と関係ないところだと、以下のライブラリを使っていくことになります。

  • Numpy : 配列計算用ライブリ
  • Pandas : データ処理用ライブラリ
  • Matplotlib : 可視化用ライブラリ①
  • Seaborn : 可視化用ライブラリ②

ただ、別で勉強する必要はなく、こちらで適宜文法の説明をしていきます。

 

なので、安心して機械学習に入門して頂ければ大丈夫ですよ!

 

【機械学習入門①】まとめ

 

というわけで、今回は以上です。機械学習の概要が分かったのではないでしょうか。

 

次回は『教師あり学習・回帰問題』の中で、もっとも基本的な『単回帰モデル』を取り扱っていきます。

機械学習 入門② 線形回帰 単回帰モデル
【機械学習入門②】線形回帰・単回帰モデルをPythonの実装付きで理解!『線形回帰をPythonで実装してみたいんだけど、どうやってやれば良いのかな。できれば理論も分かりやすく解説してくれる記事があると嬉しいな。』このような悩みを解決できる記事になっています。Pythonで線形回帰を実装したい方は必見です。...

 

Pythonのコードを書いて実装も学んでいくので、もしPythonの知識が怪しい人は、復習してから取り組むようにしましょう。

Python 独学
Pythonの独学完全ロードマップ【現役AIエンジニアが解説】『Pythonって独学で習得できるのかな...。Pythonの独学方法を具体的に知りたいな...。』このような悩みを解決できる記事になっています。Pythonを独学していきたい方は必見です。...

 

機械学習入門シリーズ』は長いので、休みながら学習を進めてみてください(*’ω’*)

休憩するときは、記事をツイートしておくと便利ですよ!

※メンションに気が付いたら、拡散する可能性高いです(`・ω・´)!

 

次回の機械学習入門講座

機械学習 入門② 線形回帰 単回帰モデル
【機械学習入門②】線形回帰・単回帰モデルをPythonの実装付きで理解!『線形回帰をPythonで実装してみたいんだけど、どうやってやれば良いのかな。できれば理論も分かりやすく解説してくれる記事があると嬉しいな。』このような悩みを解決できる記事になっています。Pythonで線形回帰を実装したい方は必見です。...