最終更新日:
AIの注目が集まり、2010年代後半にかけて機械学習技術が大きく台頭しました。機械学習の知識は、これからの時代にキャリアを築いていくために必須とも言えるでしょう。合わせて多くの方が機械学習の知識やスキルを得たいと考えているはずです。
しかし、
「どのようにして機械学習を勉強すればいいか分からない」
「情報量が多すぎてどこから始めればいいか分からない」
という悩みを持っている方も多いのではないでしょうか?
今回は、そんな方に向けて
「機械学習入門者が学ぶべきこと」を具体的な学習方法と合わせて解説していきます。
目次
【入門編】機械学習とは
機械学習とは
機械学習は、AIのブームを再燃させた2000年代で最もインパクトのある技術の一つとも言えるでしょう。
従来の技術では、人間が細かなルールやパターンを機械に指示することで、機械はさまざまな動作を行うことが可能でした。
しかし、機械学習によって、機械が自ら物事の特徴を学習し、認識や予測が可能になりました。
機械学習技術の主な特徴は以下です。
【機械学習の3つの特徴】
- データからルールやパターンを自律的に発見する手法
- 識別と予測が主な使用目的
- 精度は100%ではないが、従来の手法より高い精度で認識や予測が可能
機械学習の3つの種別
また機械学習は「教師あり学習」・「教師なし学習」・「強化学習」の3つに分類されます。
教師あり学習
教師あり学習とは、データに正解を与えた状態で学習させる機械学習の手法です。
例えば画像認識のAIでは、
- 画像データ
- その画像が何を示しているのかの正解
をセットにして学習することで、自律的に画像の特徴と正解の関連性を学習します。
また、売上予測のAIでは
- 来客数や天気、日時などの関連データ
- 日々の売り上げ(正解データ)
をセットにして学習することで、売り上げとその他のデータの相関を自律的に学習します。
教師なし学習
教師あり学習と違い、教師なし学習は膨大な教師データを学習しません。
代わりにデータそのものが持つ構造・特徴を分析し、グループ分けやデータの簡略化が可能です。
この教師なし学習の代表的な手法としてクラスタリングと次元削減が挙げられます。
例えば、クラスタリングでは膨大なツイートをある基準をもとに分類し、分析に活用するなど、Web上の膨大な情報を整理する際に活用されます。
強化学習とは簡単に言うと「機械がとる行動の戦略(指針)を強化(改善)する手法で」す。
一連の行動をとった結果ごとに報酬を設定し、その「報酬が最大化」するように機械が試行錯誤し、学習することで精度をあげていきます。
つまり自分でどんどん学習強化していくイメージです。似た例として、自転車に乗れるようになるまでのプロセスをあげています。
例)自転車に乗れるようになるプロセス
|
▼機械学習について詳しく知りたい方はこちら
機械学習にできること
機械学習は、単純作業やパターンが決まっている業務を得意とします。
例えば、下記のようなものに機械学習は活用されています。
画像認識
画像認識はその名の通り、画像の中で「何が写っているか」を特定する技術です。
従来の技術では写真の中に何が写っているのかを機械が判断するには、物体の特徴を具体的に定義し、それをプログラマーがコード上で指定しなければなりませんでした。
しかし、ディープラーニングなどの機械学習技術の発展により、機械が自律的に物体の特徴を掴むことで、高精度に画像を認識することが可能になりました。
現在、画像認識のエラー率は人間を凌駕する程になっており、さまざまな分野で画像認識の活用が進んでいます。
自然言語処理
画像認識だけでなく、テキストの認識でも機械学習技術が成果をあげています。自然言語とは、人間が使用する言語のことです。この自然言語を人間のように認識し、理解する技術が自然言語処理と呼ばれ、多くの企業で研究開発が行われています。
現在の機械学習技術では、人間と同様の精度で文意を汲み取ったり、意図を理解することはできません。しかし、大量のデータを学習することで、知識の整理や簡単な返答ができるようになっています。
現在、自然言語処理技術はチャットボットで特に活用が進んでいます。
音声認識
音声認識は、音声データをテキストデータに変換する技術です。人間が言葉をそのまま理解するのに対して、コンピュータは、音響モデルや言語モデルを用いて音声を解析し、認識します。
例えば、iPhoneのSiriや会話の文字起こしなどで使用されています。
予測
AIは、高速で計算したり膨大なデータを取り込んで解析したりできるため、データに基づいて未来に実現しうる数値や結果を予想することが得意です。
小売流通業の需要予測や、交通渋滞予測などで機械学習はよく利用されています。
機械学習のこれからに期待できること
機械学習は単純作業などで幅広く活用されている一方、まだ現時点で実現できていないこともあります。
しかし、今後のAIの発展により、今できないことも将来できるようになることが期待できます。
例えば以下のような分野は、今後の機械学習に期待できる分野です。
クリエイティブ作業
クリエイティブな作業は、AIにはできないと言われていますが、すでに「小説を書く」「作曲をする」といったクリエイティブ作業を行う機械学習システムは存在はします。
まだクリエイティブな作業を行うAIは数が少ないですが、今後当たり前のようにAIがプロデュースしたテレビ番組や、AIがデザインした広告が出てくるかもしれません。
優しさや温かさ
人の温かみや優しさという部分を、現段階のAIが表現するのは少し難しいです。
しかし、AIが表情や口調で人の感情を察知し、さまざまな感情に対する適切な言動を学習すれば、人間よりも人に寄り添った対応を取れるようになるかもしれません。
今後、AIと心理学や認知科学の融合が進んでいった場合、上記のような優しさや温かみを感じるAIが登場する可能性は大いに考えられます。
機械学習入門者はここを目指すべし
機械学習エンジニアになる
機械学習エンジニアとは、簡単に言うと機械学習モデルを構築するエンジニアです。ときには「AIエンジニア」や「MLエンジニア」とも呼称されます。
AIに関連する職業の中でも特に近年注目されている職業で、多くのデータを学習させて作る「機械学習モデル」の開発や、現場環境への実装を手がける職業です。
機械学習では、従来のエキスパートシステムなどのように、全てのコードを「if文」のようにルールベースで定義することはせず、比較的少ないコードで済む場合が多いことが特徴です。そのため、機械学習エンジニアは、多くのデータを学習させ、精度を向上させるために、アルゴリズムやデータの形式を工夫する力が必要です。
▼機械学習エンジニアについて詳しく知りたい方はこちら
データサイエンティストになる
簡単にいうとデータサイエンティストは、蓄積されたビッグデータを分析し、分析結果から導かれた手法を活用することで企業に貢献する職業です。
IT化が進んだ現代社会において、さまざまな業界の企業で大量のデータが溢れかえっている中、ビッグデータを扱えるデータサイエンティストの需要はますます高まっています。
データサイエンティストを簡潔に表すと「膨大なデータを分析し、そこから得られた結果をビジネスに活用する」職業と言えます。
▼データサイエンティストについて詳しく知りたい方はこちら
入門者向けの機械学習の学習手順
①基礎学習
機械学習を学びたいと思ったら、プログラミングの勉強は必須です。
プログラミングとは、コードを書いてコンピュータへの指示を出すことを指します。
機械学習のプログラミングで使われる言語は様々な種類がありますが、入門者にオススメなのが、「Python(パイソン)」です。Pythonを学ぶ主な方法は3つです。
|
それぞれ特徴を解説します。
Webサイトで学ぶ
現在、Pythonを学べるWebサイト、Webサービスがインターネット上に溢れています。
その中でオススメのWebサイトは6つを紹介します。
・Progate(プロゲート)
Progateは、Progateは、ユーザー数100万人(2019年時点)を超える初心者向けのプログラミング学習サイトです。イラスト中心の分かりやすい説明で基礎的なコーディングを学習できます。月額980円の有料会員になると、全レッスンを利用することができます。(無料会員は初級編のみ)
・筑波大学オープンコースウェア(TSUKUBA OCW)
筑波大学オープンコースウェア(TSUKUBA OCW)は、筑波大学が教育コンテンツを無料で提供するプラットフォームです。機械学習に関する講義動画が多数公開されています。
・Udemy(ユーデミー)
Udemy(ユーデミー)とは、100,000以上の講座があるオンライン学習プラットフォームです。誰でも講師になることができ、自分の講座をインターネット上に公開することができます。講座は英語が中心で、数千円〜2万円くらいの料金がかるものが多いです。(無料の講座もあります)
・Aidemy(アイデミー)
Aidemyは、AIの学習に特化したオンライン学習サイトです。Pythonを中心に、CSSやHTMLなどのフレームワークも効率的に学ぶことができるので、プログラム初心者でも挑戦することができます。無料のコースも用意されているため、気軽に学習を始められるという点もAidemyの魅力です。
・キカガク
キカガクでは、無料でデータサイエンスの基礎や機械学習の基礎などを学ぶことができます。
無料とは思えないほど、有益でわかりやすいサイトになっており、TensorFlowやPyTorchなどのフレームワークまで網羅されています。初学者が最短でコスト0で学ぶには最適なサイトです。
・Chainer チュートリアル
Chainer チュートリアルでは、Pythonはもちろん、機械学習を学ぶ上で必須となる数学の基礎まで網羅されています。サイト利用は無料ですが、内容は大学生以上向けです。
必要な知識を順番に学習できるカリキュラムとなっているため「まず何を学べば良いか分からない」という初学者特有の悩みが解決できます。
・YouTube
みなさんお馴染みのYouTubeですが、実は機械学習(Python)を学べる動画が溢れています。もちろん無料です。
オススメの動画はこちら
▼Python入門(全23回)
▼中学生でもわかるPython入門シリーズ書籍で学ぶ
機械学習は書籍でも学ぶことができますが、その中でも入門者にオススメの書籍をいくつかご紹介します。各分野ごとに紹介するので、自分に必要な書籍をピックアップしてみてください。
【機械学習入門編】
・いちばんやさしいPython機械学習の教本
Pythonを使った機械学習の、実践的な基礎が学べる解説書です。小さいサンプルプログラム(bot)に機能を追加しながらデータ収集から前処理、学習、予測、評価まで周辺技術も含めた機械学習の全体像が学べます。
【Python入門編】
・Python 1年生
対話形式でイラストを交えながら、基礎知識が解説されているので入門者の方でも分かりやすい内容になっています。
・いちばんやさしいPythonの教本
講義+実習のワークショップ形式で、会話bot「pybot」を作りながら楽しく学べる「はじめてでも挫折しない」Pythonの入門書です。
・ Pythonふりがなプログラミング
「プログラムの読み方をすべて載せる(ふりがなをふる)」という手法で究極のやさしさを目指した、新しいPyhtonの入門書です。
【数学編】
・やさしく学ぶ 機械学習を理解するための数学のきほん
「機械学習に興味があるけど、どの本を見ても数式が出てきて、分からない・・・」という方にぴったりの本です。
・人工知能プログラミングのための数学がわかる
人工知能プログラミングに必要な数学を、やさしく学ぶ参考書です。基本からおさらいするので、数学が苦手な人にもオススメできます。
【統計編】
・Pythonで学ぶ統計的機械学習
機械学習を使いこなすために、Pythonの簡単な使い方から確率・統計の基礎、統計モデルによる機械学習を解説した本です。
・機械学習のための確率と統計
機械学習分野に参入したい技術者・大学生を対象とし、機械学習技術の理解に必要なトピックが厳選されています。コンパクトなので初学者の教科書としても、最適です。
【ディープラーニング編】
・高校数学でわかるディープラーニングのしくみ
人間の脳のニューロンの働きを数学的に抽象化し、人工的にネットワーク化した「ニューラルネットワーク」を基本とする、ディープラーニングのしくみが、高校までの数学で丁寧に解説されています。
・ゼロから作るDeep Learning
ディープラーニングの本格的な入門書です。外部のライブラリに頼らずに、Python 3によってゼロからディープラーニングを作ることで、ディープラーニングの原理を楽しく学ぶことができます。
【データサイエンス編】
・データサイエンス講義
データサイエンスを行う上で、どのようなプロセスが必要か。データサイエンティストとしてはどのようなスキルセットが必要で、どのような思考方法を選択する必要があるのか。実例を多数示しながら紹介されています。
・データサイエンス入門
データの処理・分析に必要な情報学(コンピュータ科学)と統計学の基本知識をおさえ,またデータから新たな価値を引き出すスキルの学び方が紹介されています。
【その他オススメ本】
・人工知能は人間を超えるか ディープラーニングの先にあるもの
AIってなに?ディープラーニングってなに?って方向けの書籍で、人工知能の歴史も踏まえて知りたい方にオススメの書籍です。人工知能や機械学習、ディープラーニングの概論を知ることができます。
・図解これだけは知っておきたいAI(人工知能)ビジネス入門
AIの開発と直接関わりは少ないですが、AIに関心があって、AIをどのように活用ができるか、どのような技術があるかを知りたい方にオススメです。 イラストや図を使用して、AI関連の用語が分かりやすく説明されています。
プログラミングスクールで学ぶ
プログラミングスクールは数万円〜数十万円のお金がかかりますが、最短でPythonを学習することができます。また、学習につまずいたときに講師が直接指導してくれるため挫折しにくいです。
今回は、Pythonが学べるプログラミングスクールを3つご紹介します。
・DIVE INTO CODE(ダイブイントゥコード)
オフラインの機械学習エンジニアコースでPythonを学ぶことができ、4ヶ月で自立自走できる機械学習エンジニアになることを目的としています。
入学金を含めると約100万円の料金がかかりますが、手厚い就職サポートがついています。また、入校するには事前テストの合格が必要です。
・TechAcademy(テックアカデミー )
大手プログラミングスクールのテックアカデミーでは、
「AIコース」「データサイエンスコース」「Pythonコース」の3つのコースでPythonを学ぶことができます。
完全オンライン形式で、学習期間は4週間から最大16週間、料金も15万〜30万と比較的安価です。(学生はもっと安く受講できます)
学生はインターンで学ぶという手もあり
あなたが学生であれば、インターンに行って機械学習を学ぶという方法もあります。インターンに行けば、実際の開発現場で経験が積めるのため大きくスキルアップできます。
▼機械学習のインターンに関する記事はこちら
基礎学習まとめ
基礎学習をまとめると以下のようになります。
Webサイト | 書籍 | スクール | インターン | |
期間 | 数ヶ月 | 数ヶ月 | 数週間〜4ヶ月 | 半年〜1年 |
コスト | 無料〜数万円 | 数千円 | 数万〜百万円 | 無料 |
難易度 | ⭐️⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️⭐️ | ⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️ |
オススメ度 | ⭐️⭐️⭐️⭐️ | ⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️⭐️ |
プログラミング経験のある僕としては、「まず無料のWebサイトで学習してみて、進まなくなったり、挫折したりしたらスクールに行く」という形が最もオススメです。
②フレームワークを学習
フレームワークとは、プログラムを作る際のひな形のようなものです。
機械学習の分野では、主にディープラーニングモデルを作る際に、TensorFlowやPyTorchなどのフレームワークを用いるのが一般的です。
開発を行うとき頻繁に必要とされる基礎的な機能をまとめて提供してくれるため、より簡単に低コストで開発を進めることができます。
ちなみに、「①基礎学習」でご紹介した中には、フレームワークも学べるものも多数あります。Pythonの基礎とプラスしてフレームワークまで学べるものを選ぶといいでしょう。
▼機械学習のフレームワークについて詳しく知りたい方はこちら
③ポートフォリオ作成
Pythonの基礎学習と、フレームワークの学習を終えたら、ポートフォリオを作成しましょう。ポートフォリオとは、「0からどの位の作品を作れるか、コーディング技術があるかを示すもの」です。
エンジニアとして就職・転職するには、ほとんどの場合でポートフォリオが必要になります。Pythonのポートフォリオでは、基本的にオリジナル機能を実装します。
以下のようなオリジナル機能を実装することができれば、就職・転職で良いアピールができるでしょう。
|
また、paiza(コーディングスキルが分かるWebテスト)でCランクを概ね解ける、Bランクも解ける、という実績も立派なポートフォリオになります。
④エンジニア or データサイエンティストとして就職
ポートフォリオが作成できたら、就職・転職活動に臨みましょう。
機械学習エンジニアやデータサイエンティストには以下のような求人があります。
▼未経験可能な機械学習エンジニアの求人例
株式会社日立ハイテク 【仕事内容】 ・AI・画像処理・データ解析アプリケーションの開発 ・データ活用システム、ソフトウェア設計【年収】 600万〜850万円【必須条件】 ・機械学習、画像処理、データ解析いずれかの開発・実装経験 ・Java、C言語、python等のプログラミングスキル ・Webアプリケーション等のソフトウェア設計経験上記のいずれかの経験がある方 |
▼未経験可能なデータサイエンティストの求人例
株式会社エイアイ・フィールド 【仕事内容】 ・データ抽出・集計、プレゼンテーション、統計分析/機械学習 ・マーケティング戦略の立案、個別施策の企画・シミュレーション ・データ整理、基盤構築、BI導入/ダッシュボード制作 ・各種モデルのデータ入力・更新~検討、作成、チューニング ・蓄積されたデータからの新たな知見の発見【年収】 400万〜700万円【必須条件】 ・各種マーケティング業務の経験 ・データ抽出・加工業務(SQL, Hadoop, Redshift他) ・R、Python、SPSS Modeler、Tableau、SASの使用 ・何らかのプログラミングもしくは機械学習の経験 ・各種AIスクール卒業上記のいずれかの経験がある方 |
脱入門者になるためには?
機械学習は、Pythonとフレームワークに加えて、「数学」「統計」の知識が必要であり、学習範囲が広いため脱入門者になる難易度は高いと言えます。
では、脱入門者になるためにはどうすれば良いのでしょうか?
ポイントは5つです。どれか一つでも身につけていれば、脱初心者に近づくことができます。
数学・統計の知識を身につける
機械学習エンジニアには、微分、行列などの数学的な知識や、データ分析などの統計の知識が求められます。
実践的な経験を積む
インターンや未経験可の求人で実務経験を積むことで、効率的に現場で必要な知識を学ぶことができます。
オリジナルアプリ、オリジナル機械学習モデルを作成する
「不正出品検出アラートの開発」や「対話チャットボットの開発」が作成できれば機械学習エンジニアとして就職できます。
SQL知識をつける
SQL(データベースに格納されたデータを操作する言語)の知識があれば、よりデータを加工しやすくなります。
Webスクレイピングを身につける
Webスクレイピング(Webサイトから情報を抽出するコンピュータソフトウェア技術)があれば、よりデータが抽出しやすくなります。
機械学習初心者を脱するために必要な学習量は非常に多いですが、まずはPythonの基礎学習をしてポートフォリオを作成するのが脱初心者への一番の近道でしょう。
まとめ
今回は「機械学習入門者が学ぶべきこと」というテーマで、機械学習の学習方法を具体的に解説してきました。
機械学習エンジニアになるには、他のエンジニアより学習することが多いです。しかし、その分機械学習エンジニアは給与が高いという側面もあります。あなたが機械学習入門者を脱したときには、市場価値の高い人材になっている可能性が高いでしょう。
機械学習入門者の方は、ぜひ今回ご紹介した学習方法を参考にしてみてください。
◇AINOWインターン生
◇Twitterでも発信しています。
◇AINOWでインターンをしながら、自分のブログも書いてライティングの勉強をしています。