「機械学習」や「AI」を自分で実装してみたい!
ただ、難しそうだしムリだろうなと思っている方は多いのではないでしょうか?
実際にこれらの実装をプログラミングしていくことになりますが、実は機械学習のプログラミングはコツさえつかめば通常のプログラミングよりもすごく簡単に実装できるのです!
本記事では実際に機械学習のプログラミングを始めたい方の後押しをするため、始め方のエッセンスをお伝えします。
機械学習とは
まずは機械学習のプログラミングを始める前に簡単に機械学習とは何か?を学んでいきましょう。機械学習とは「AI」と世間で呼ばれているものとほぼ同義と考えてよいでしょう。AIと呼ばれる人間味あふれた知能の裏側はこの機械学習で作られています。
機械学習とは「とあるデータから傾向を抽出し数式化する」と表現するとシンプルになります。要は何等か傾向がありそうなデータ群(例:日々の売上)から傾向を数式(例:天気による売上の予測式)として導き出しているプログラムの事です。機械学習には大きく「教師あり学習」「教師なし学習」「強化学習」の3つの手法があります。
教師あり学習
教師あり学習は過去データを用いて学習を行い、学習モデルを生成する手法です。過去データからモデルを生成するため教師あり学習です。教師あり学習は「予測」に利用されるのが一般的です。過去データ(例えば顧客の属性、行動データ、購買データ)から未来(商品を買うかどうか、優良顧客になるかどうか)を予測するロジックを生成します。具体的な学習方法としては回帰や分類、ニューラルネットワークなどがあり、さらに細かい分析手法があります。
教師なし学習
教師なし学習は過去データを用いて学習モデルを生成するのではなく、大量のデータからパターンや構造を見つける手法で、クラスタリングが有名です。
クラスタリングは例えば大量のお客様のデータから似たような購買行動をしているお客様をグルーピングします。(例:小売業でいうとプレゼント目的、自分の服を買う目的など購買行動から自動で客層を分類する) その結果はマーケティングに応用したりでき、DMやメルマガの内容を変えることでより高い角度で受注につなげることが出来るのです。
強化学習
強化学習は学習ロジックが自ら精度を高めるスタイルの学習方法です。事前に報酬という概念が設定されており、この報酬を最大化するロジックは何か?を学習します。ランダムに行動した上で報酬を最大化する行動は何か?を理解し、それをひたすら繰り返して学習する手法です。ロボットや自動運転などの技術に利用されています。
機械学習の始め方
さて、こんな高度なプログラムを自分で実装なんてできるの?と思ってしまいそうですが、問題なくできます。何なら今までプログラミングをやってきていない方でも1週間あれば簡単なものは十分実装できるでしょう。
なぜならば、機械学習の分野では既に有識者が過去に作ったプログラムが「ライブラリ」と呼ばれるプログラムの塊として世の中に公開されており、このライブラリを使えばデータを決まったルールで渡すだけで簡単に機械学習のプログラムが作れてしまうのです。本記事では目的に合わせたメジャーなライブラリもご紹介していますので是非参考にしてください!
機械学習で利用する言語
プログラムを書くためにはまずプログラミング言語を選択する必要があります。世の中にはJAVAやC言語など様々なプログラミング言語がありますが、機械学習の実装において有名なのはPythonとRの二つです。以下、それぞれ2つを紹介します。
Python
Pythonは、広く使われているプログラミング言語の1つで、1991年にGuido van Rossum氏によって開発されたものです。Pythonはオープンソースであり、無料で使用できる言語です。またシンプルで読みやすく、学習しやすいという特徴があります。
Pythonはプログラミング言語なのでシステム開発にも用いられますが、統計的な計算機能などが充実しているため機械学習にも広く使われています。機械学習用のライブラリも多く公開されており、機械学習を始める際にはまずPythonを使ってみる、という選択でまず間違いはないでしょう。機械学習の実装の際にPythonを記載していくにあたってはJupyter Notebookというエディタ(プログラムを書く際のツール)を利用するのが一般的です。システム開発のためにPythonでプログラムを書く場合は別のエディタを使いますが今回説明は割愛します。
R
R言語は、統計解析やデータマイニングなどのデータ処理に特化したプログラミング言語で、1993年にニュージーランドのRoss IhakaとRobert Gentlemanによって開発されました。R言語はオープンソースで無償で利用できます。
R言語は、データの可視化や統計解析、機械学習などの分野で広く使用されています。また、豊富な統計関数やグラフィックス機能が備わっているため、データ解析に適した高度な機能を備えています。R言語で機械学習を実装する際はR Studioを利用することが一般的です。機能面でPythonに劣ることはないですが、Pythonの場合システム開発の言語としても優秀であるため、システムにAIを組み込む際はPythonを用いることが多い印象です。
Pythonによる機械学習環境の実現
本記事ではPythonを取り上げて機械学習の始め方をお伝えします!Pythonで機械学習の実装を始めるにあたってはまずPythonってどうやって動くの?というところから理解し、実際にその環境をご自身のPCで実現する方法を学んでいきましょう。
Pythonが動く仕組み
Python以外のプログラミング言語が動くには
①プログラムのコード自体
②プログラムのコードをハードウェアが認識できる機械語に変換する実行環境ソフト
③OS(Windowsなど)
④ハードウェア(CPU, メモリ)
の4つのレイヤがあり、①のソースコードを記載するためのプログラムエディタも必要です。(機械学習を実装する際、Pythonの場合はJupyter Notebookが主)
そのため、まずPythonで自分のPCで機械学習の勉強を始める場合は実行環境とエディタのインストールが必要です。これらをまとめて入れられるのがAnacondaです。Pythonで機械学習を始めるにはまずAnacondaを入れましょう。
Anacondaを入れてみよう
前述のとおりAnacondaはPythonの実行環境(Python3などと呼ばれるものがそれです。)とPythonのメジャーなエディタであるJupyter Notebookがセットで入っているソフトです。これをインストールしておけば実行環境のセットアップからエディタの環境構築まで可能です。
STEP1:https://www.anaconda.com/products/distribution にアクセスしてDownloadを押す
STEP2:ダウンロードしたインスト-ラを実行(現状Pythonなどをインストールしていない場合は指示通りにNextを押していけば大丈夫です。)
STEP3:インストールが完了したらスタートメニュー内にJupyter Notebookが出てくると思いますのでそちらを実行してください。そうするとJupyter Notebookを動かすためのサーバが開始されます。
STEP4:その後、JupyterNotebookのメニュー内右上の「New」からPython3を選択し起動してください。これでコードエディタが立ち上がります。
Pythonを使った機械学習の実装は次回の記事で詳細説明します。
(初心者向け)Google Colaboratoryによる実装
自分のPCにPythonの開発環境をセットアップしなくても実は無料でPythonの開発をすぐに始められる環境があるのです。それがGoogle Colaboratoryです。(https://colab.research.google.com/?hl=ja)
Google ColaboratoryはGoogleが提供するPythonの学習用の環境で無料でしかもWEBブラウザがあればすぐに学習を開始できます。Jupyter Note
STEP1:Google CoraboratoryTOP画面の左上「ファイル」メニューからノートブックを新規作成を選択
これだけでコードエディタが立ち上がります。使い方はJupyter Notebookとほぼ同じです。
学習方法について
さて、ここまで準備が出来たらあとはコードを書いていくだけです。もちろんコーディングは学習しながら覚えていく必要があります。ここではPythonで機械学習を勉強するにあたっての優良コンテンツをご紹介します!
Udemy
様々なE-learningコンテンツが販売されている有料のE-Learningコンテンツ販売プラットフォームです。IT系の勉強で何か新しいものを始める際にはまずはUdemyで探すで問題ないです。グローバルで有名なコンテンツは日本語訳がついていたりするのでグローバルで信用の高い教育コンテンツで学習することが可能です。また、コンテンツの金額は初回購入の際やキャンペーン中に90%引きになったりもするので定価で買わないことをお勧めします!Python、機械学習 などといったキーワードで検索すると様々なコンテンツが出てきますので評価やレベルをみて自分に合ったものを購入することをお勧めします。大体数千円で買えると思います。
東京大学「Pythonプログラミング入門」
東大が公開しているPythonを用いた機械学習の講座です。Pythonの基本的な書き方と統計分析などで利用される基礎的なライブラリの使い方が学べます。無償ですのでまずはこちらで基礎を学ぶのもよいかと思います。
おわりに
今回は、Pythonにて機械学習をスタートするやり方について説明しました。
機械学習の学習環境を作るといっても一度やってしまえば意外と簡単なことだと思われたのではないでしょうか。次回は、実際に機械学習の実装を進めていきたいと思います。
株式会社KUIXではこのような機械学習に関する開発案件の受託やデータ分析に関する教育、プロフェッショナル人材のご紹介などをお客様に提供しております。もし自社で進めるのはちょっと厳しいといった場合は是非弊社までお問い合わせください!お問い合わせはこちらから