プロのカウンセラーがキャリアの悩みを解決!

機械学習(マシンラーニング)とは?人工知能との違いや学習方法を紹介

作成: 2017.11.24 更新: 2017.11.29

>>副業・フリーランスという働き方
個人で稼げるスキルを!独立まで完全サポート

皆さんは機械学習についてご存知でしょうか?

ここ最近ではGoogleの囲碁AI「AlphaGo」がプロ棋士に勝利するなどテレビのニュースやメディアでも大きく取り上げられる話題の1つです。本記事では機械学習について全く知らない方に機械学習とは何かから、どうやってプログラミング未経験から機械学習を学習していければ良いかまでご紹介します。

この記事の目次

機械学習(マシンラーニング)とは

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

機械学習は人工知能の研究課題の1つです。

人工知能というと皆さんはまず何を思い浮かべますか?私の世代ですぐに思い浮かべるであろう人工知能はこちらです。

出典: https://www.flickr.com Photo:Dick Thomas Johnson

人工知能には「強いAI」(汎用型人工知能)と「弱いAI」(特化型人工知能)と呼ばれるものが存在します。

ターミネーターは強いAIに該当し、特定の作業やタスクに限定せず人間と同様の、あるいは人間以上の汎化能力を持ち合わせているとされています。2017年現在においては、まだ研究段階であり、実用化はされていません。

特化型人工知能は、特定の分野に特化したものです。代表的な特化型人工知能は、囲碁に特化したAlphaGoです。特化型人工知能は、実用化が進んでいます。

機械学習の学習手法

機械学習には様々な学習手法があります。ここでは「教師あり学習」「教師なし学習」という2つの手法をご紹介します。

教師あり学習とは?

教師あり学習とは、予め分類情報が付与されたデータを元にAIが機械学習を行う手法です。

例えば、AIに果物の画像を見分けて欲しいとします。

教師あり学習ではまず始めに、人間が答え(果物の名前)付きで画像をAIに見せて、学習させます。学習が終わったAIは未知の画像を見せられた時に過去の学習を元に画像の種類を予測出来る様になっています。

まとめると、教師あり学習とは、正解があるデータを元に行われる機械学習であるということです。


画像引用:Pinto!

教師なし学習とは?

教師なし学習とは、分類分けされていないデータを元にして機械学習を行う手法の事です。データの中にあるパターンやルールを見つけ出し、分類することが目的です。

データをある共通の特徴を持つグループに分けたりグルーピングしたり、データ同士の頻出パターンの発見をすることに用いられます。

たとえばあるネット通販の購入データから平均購買単価が高いグループと、平均購買単価が低いグループの特徴を見つけたり(グルーピング)「ビールとおむつが一緒に買われることが多い」ということを発見したり(頻出パターンの発見)という風に活用されます。

 

出典:TECH::CAMP

機械学習と深層学習(ディープラーニング)

機械学習には、ディープラーニングと呼ばれる手法があります。ディープラーニングとは具体的に、ディープニューラルネットワーク(DNN)を用いた機械学習のことを指します。

今までの機械学習と異なるのは、入力層と出力層の間にある、情報の伝達と処理を行う中間層が多層に存在する事です。

Deep Learningは予測の精度や汎用性が非常に高い代わりに、実践には大量のデータが必要となることが特徴です。



引用:人工知能の仕組み インフォグラフィックでわかりやすく解説#01

将来の不安はスキル習得で解決

「ずっと今の仕事を続けるのは不安」「将来収入があがる職につきたい」「やりたいことがない」

いま、日本では多くの若者がそう感じています。あなた1人じゃありません。
毎月数千人の方がTECH::EXPERTの無料キャリア相談に参加しています。

プロと話してキャリア構築を少しでもクリアにしませんか?

機械学習の実例

人間の代わりに顧客対応をするAI

IBMの人工知能「Watson(ワトソン)」は、コールセンターで人間のサポートをする為に導入されています。

三井住友銀行ではコールセンター全席でWatson(ワトソン)によるサポートが導入されています。顧客からの問い合わせをリアルタイムで文章化し、業務マニュアルやQ&A集から回答候補を問い合わせ担当に提示することで、導入前よりも迅速で正確な回答を実現しています。

医者よりも正確な診断で患者の命を救うAI

「Watson(ワトソン)」は同じく、医療の現場で病気の診断に利用されています。医者よりも正確な診断を下すこともあるとされています。

たとえば医者が急性骨髄性白血病と診断した患者を別の病気であると見抜き患者の命を救うのに役立ちました。このWatson(ワトソン)は最新の医学論文データや、臨床医療のデータを取り込んでおり、数十万件の医学的根拠を学習しており、事例の様に経験を積んだ医者よりも的確な判断を下す事もあります。

画像を認識し、自動運転を可能にするAI

車の自動運転にもAIは活用されています。

アメリカにある半導体メーカーのNvidia Corporationは自動運転の開発プラットフォームを提供しています。

ディープラーニングと画像認識機能により、駐車場の中から空いているスペースを探し出して駐車をすることや、運転手からスマートフォンで呼び出しを受けて、運転手の元まで自動で走ってくることなどが可能になっています。

機械学習のプログラミング

ここまでで機械学習とは何か、今の時代様々な産業に活かすことが出来ていることをおわかり頂けたかと思います。そんな機械学習も実はプログラミングをしなくても体験出来きるサービスがあります。

プログラミング不要で機械学習を体験できるサービス IBM Watson(ワトソン)

今回はWatson(ワトソン)の画像認識を体験してみましょう。

画像認識の機能では読み込んだ画像が何を表しているのか確率が高い順から羅列して表示してくれます。例えばバナナの画像を読み込んだ場合は、果物、食べ物、バナナである確率が高いことが確率で表されます。

それでは一度以下よりやってみましょう。

1.下記URL(英語)にアクセスします

https://visual-recognition-demo.mybluemix.net/

2.下図の通り、画像を他のサイトから画像URLでとってきます。

Watson(ワトソン)にあるサンプル画像を選択していただいても構いません。

3.画像URLを貼り付けてEnterを押しましょう。

4.以下のような結果が得られます。

 

上記の結果であればengineやmachineの確率が高く、正しく認識されているような結果が得れました。他の例も試していただくと分かるのですがかなり的確です。しかしこれらを実際にサービスとして利用するにはプログラミングを使ってサービスに組み込む必要があります。

機械学習に使うプログラミング言語はPythonが主流

Pythonでは、豊富なライブラリが公開されています。Ruby言語などと同じように、ウェブサービス開発としても扱うことが出来ます。

世界的に有名なSNSであるInstagramも、ウェブサービス開発の言語としてPythonを使用しています。

Pythonはまとめると以下全てのカテゴリーのライブラリがあります。

・数値計算・統計処理

・画像、音声、動画認識

・自然言語処理

・ウェブサービス開発(フレームワークなど)

・ネットワーク

・データベース

Googleの機械学習ライブラリTensorFlowもPythonで使用できます。

プログラミング言語Pythonを扱うことができれば、機械学習のノウハウの習得は比較的容易と言えるでしょう。

機械学習のアルゴリズム

機械学習アルゴリズムには膨大な種類があります。

アルゴリズムはそれぞれ異なる特性を持っています。データ分析を行う際には、解決したい課題や準備できたデータによって最適なアルゴリズムを選ぶ必要があります。

以下2つの例をご紹介します。

例1) プログラミングスクールを経営しており、来月の集客予測を行うとき

「回帰分析」の種類の中のアルゴリズムを使用します。回帰分析では線形回帰やベイズ線形回帰などの機械学習アルゴリズムがあります。

・線形回帰

複数の変数における相関関係を直線モデルによって説明しようとする分析手法です。線形回帰分析に関して興味が有る方は下記の外部サイトを御覧ください。

http://blogs.teradata.com/international/ja/hhg9/

・ベイズ線形回帰

そんな線形回帰を確率化するのがベイズ線形回帰です。詳しく知りたい方は下記の外部リンクをご覧ください。

https://qiita.com/ysdyt/items/05a884354741bd9ca82b

例2) 自分のInstagramで友人の写真を友人毎に分けたい

「分類」の種類の中のアルゴリズムを使用します。分類ではロジスティック回帰や決定木の機械学習アルゴリズムがあります。

・決定木

樹形図、またはツリー構造と呼ばれる図を作り出し、アウトプットには分類を行なうためのルールを作成します。

決定木の結果として、以下のようなツリー構造が表示されます。

出典:TECH::CAMP

 

・ロジスティック回帰

ロジスティック回帰は分類分析に使用されるアルゴリズムです。主に2クラス分類に使われます。例えば真(true)か偽(false)という二値論理に関する結果を分析することは、2クラス分類の1種です。

回帰とは一般にはもとの位置または状態に戻ること、あるいはそれを繰り返すことを指します。

ロジスティック回帰に関して興味が有る方は下記の外部サイトを御覧ください。

http://blogs.teradata.com/international/ja/hhg10/

PCがあればすぐ開始!機械学習が学べるおすすめ書籍・オンライン動画

今世界規模で機械学習に学ぶことに関して、本やオンライン学習サービスが非常に充実してきており、日本語版もかなり充実しておきており気軽に学習を始めることが出来ます。

おすすめの書籍やオンライン講座をご紹介します。

【ゼロから始めるデータ分析】ビジネスケースで学ぶPythonデータサイエンス入門

出典:【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門

こちらの講座はいきなり技術的な知識を積み上げていくのではなく、機械学習を始めとした人工知能がどう活用されていくのか、アウトプットを取り入れながらの学習できます。機械学習未経験の方が取り組みやすい内容で構成されています。

日本のデータサイエンティスト界で有名なDeepAnalyticsが保有するビジネスデータをもとにした課題で、実践的な演習に取り組み実践できます。

Pythonで機械学習:scikit-learnで学ぶ識別入門

出典:Pythonで機械学習:scikit-learnで学ぶ識別入門

この講座では、広島大学准教授の方が解説します。

本コースの目標は「機械学習でデータを識別するための一連の流れ(データの準備・前処理・識別器・評価など)を理解することです。scikit-learn(サイキットラーン)で学ぶことにフォーカスされています。

scikit-learnは、機械学習に特化したライブラリです。教師あり学習、教師なし学習で用いられる様々な分類、回帰、クラスタリング(分類)アルゴリズムをすぐに利用できる様に準備している他、機械学習の為のデータなども用意されています。

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

上記のUdemyの講座と被りますが、一緒に学習されると理解を深めることが出来ます。

本書籍は実際に手を動かし、機械学習を実践できます。Pythonの機械学習分析において最低で抑えておくべき知識が全て網羅されています。

特に特徴量エンジニアリングとモデルの評価と改善といった実務で必要になる知識が多く含まれています。

しかし機械学習の数理やPythonの知識は別の本で学ぶ必要があるため、上記のUdemyの学習後に本書籍を読まれると理解が深まります。

仕事ではじめる機械学習

出典:仕事ではじめる機械学習

機械学習エンジニアにとって「機械学習を説明できる事」と同等なレベルで「機械学習を使わない方法を提示できる事」が大事な力であることを主張する本です。

実際に業務で機械学習を利用してきた方々の知恵が詰まった本になっています。本書を読むことで機械学習を実務で使ってみようという人が失敗を減らすことができるようになります。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

タイトルの通り、機械学習の中でもディープラーニングの内容を学習します。

Pythonを環境構築するところから書いており、Pythonや機械学習の未経験者でも躓くなく学習できるようになります。この本では紹介した手法について手厚く解説を行い、ソースコードも公開しています。

またこの本は基礎からこの本だけで完結できるよう解説されています。ただし、大学初学年の数学知識は必要とされます。

全くのプログラミング未経験者が機械学習を使用したサービスを作るため必要な知識

人工知能はWebサービス開発やアプリ開発の分野からも非常に注目されており、一般向け・法人向けの人工知能サービスも多数登場しています。

全くの未経験者が機械学習を使用したサービスを作るには、データサイエンスとWebサービス開発の知識が必要になります。

データサイエンス

機械学習向けに使用するデータを収集するには、自前でデータを用意するか、オープンソースのデータを使用する必要があります。

一般的に機械学習をビジネスシーンで用いるには、自前で用意したデータが必須です。一方、研究目的などに使う場合にはオープンソースのデータも使用されます。後者の場合、DeepAnalyticsをはじめとするオープンソースのデータを使用可能です。

データには欠陥があったり、不正なデータが存在する可能性があります。そのため用意したデータは分析しやすくするために、事前に整理する必要があります。これにはデータ分析に使用されるツールであるJupyterなどを使用し、データを整えるスキルが必要です。

また整えるだけでなく、データの特徴を見極めた上で予測に必要なデータを定量的に推測し、実際のビジネスの場面で活かせる様にすることが必要です。

Webサービス開発

データサイエンスを学ぶだけでは実用的なサービスを作ることが出来ません。

機械学習を使用したサービスを開発するためには、フレームワークを使用したWebサービス開発の知識を習得することが最短経路になります。

世界的に有名でかつ最も学習コストが低いRubyであればRuby on Railsが、PythonであればDjango(ジャンゴ)がおすすめです。

しかしDjangoの文献は日本語の文献が少ないため、Ruby on Railsから学習してみることが最も妥当です。

未経験から機械学習を使ったサービスを作るならTECH::CAMPへ

全くのプログラミング未経験者の方が機械学習を学ぶと「何が分からないのかが、分からない」といった具合に学習が思うように進まず、挫折してしまうことが多いです。

未経験者の方が、AI(人工知能)やプログラミングを学ぶならTECH::CAMPがオススメです。

月額制となっており、期間中はWebサービス開発や機械学習も全て学び放題!デザインも学習ができるため機械学習を使用したサービスを作るのであれば満足したコンテンツが提供できます。

また教室にて直接質問もできることから未経験の方には非常に優しい環境です。

まとめ

機械学習を身につけるにはデータ収集やデータ整理など、多くの知識を学ぶ必要があります。大学などでは数年かけて学ぶ内容なので、無理もありません。少しでも機械学習に興味を持っていただけるようでしたらまずはTECH::CAMPの無料体験会にお越しください。

人工知能のコンテンツも体験可能となっており、参加した91%の方に非常に満足の評価をいただいております。この機会に機械学習の面白さを実感してみてください

未経験からエンジニア・Webデザイナーを目指すならTECH::EXPERT(テック エキスパート)

TECH::EXPERT(テック エキスパート)は未経験からのエンジニア・Webデザイナー転職を実現するスクールです。

転職成功率は98.5%(2019年1月時点)。確実に使えるスキルを身につけるための教育と、徹底した就職サポートであなたの転職を叶えます。

無理な勧誘は一切ありません。まずは無料キャリア相談(カウンセリング)にぜひお越しください。

無料キャリア相談の日程を見る

この記事を書いた人

関谷 丈二
関谷 丈二
TECH::CAMPの第1期生として参加し、参加直後よりTECH::CAMPに参画。大学卒業後の2015年3月に株式会社div(旧 we-b)に入社。入社1ヶ月後に社内の月間MVPに選出。翌年には年間MVPに選出される。 1年で年間100名以上の講師の採用及び育成、最速の1週間コース、イナズマコースの運営、海外リサーチ、TECH::CAMPでのシステムの開発、受託開発を実施。その後、企業のITエンジニア不足を解決するTECH::WORKの事業開発責任者として事業を立ち上げる。 現在はマーケティング部にてグロースハッカーとして活動。