1
/
5

【初心者向け】機械学習について簡単にまとめてみる


はじめに

こんにちは sts-250rrです。

前回の記事ではARをテーマに記事を投稿いたしました。

今回はテーマをガラリと変えまして「機械学習」について簡単にまとめてみようと思います。

昨今、AWSAmazon Machine LearningやMicrosoftのAzure Machine Learning Studioなどで手軽に機械学習を利用できるようになって来たことに加え、
楽楽精算では、iOS向けに領収書のアップロードができるアプリをリリースしました。

‎楽楽精算
‎領収書やレシートをパシャっと撮影、すぐ精算。 外出先や出張先から交通費・経費精算を行おうとした場合、 領収書の提出は避けるに避けられない大きな問題の1つです。 楽楽精算アプリはそんな外出先からの領収書の提出をサポートするアプリです。 楽楽精算アプリは、撮影した領収書から文字データを読み取り(OCR機能)、金額や取引先等の情報を自動で入力して楽楽精算に登録します。 保存された領収書データは、
https://itunes.apple.com/jp/app/%E6%A5%BD%E6%A5%BD%E7%B2%BE%E7%AE%97/id1352852886?mt=8&uo=4&at=10l8JW&ct=hatenablog

このアプリでは 機械学習系技術の1つであるOCR(Optical character recognition)を用いて領収書データを読み取り、楽楽精算にアップロードしています。

世間的にも話題かつ、ラクスでも機械学習に注目していることもあり、 良いタイミングなので機械学習について整理してみようということです。

今回は簡単に機械学習とは といった話から、機械学習を行うツールを使って機械学習を体験してみた内容をまとめていきます。

機械学習とは?

はじめに、Wikipediaでは機械学習についてこう書かれています。

機械学習(きかいがくしゅう、英: machine learning)とは、人工知能における研究課題の一つで、人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術・手法のことである。

つまり、人工知能を実現する手段が機械学習という事です。

さらにWikipediaを読み進めていくと概要にこう記載されています。

センサやデータベースなどから、ある程度の数のサンプルデータ集合を入力して解析を行い、そのデータから有用な規則、ルール、知識表現、判断基準などを抽出し、アルゴリズムを発展させる。なお、データ集合を解析するので、統計学との関連が深い。

とあるように、実は機械学習統計学と深い関連を持っています。
統計学は、大量に得られたデータの性質や規則性、分類を見つけるような学問ですが、この性質や規則を見つける事機械学習にとっての学習になるわけです。

機械学習の種類

機械学習について少し掘り下げていきます。
単純に機械学習といっても、大きく分けて「教師あり学習」と「教師なし学習」が存在します。
それぞれに学習方法やできることが異なりますので簡単にまとめていきます。

教師あり学習

学習に使用するデータセットに対して、正解を与えておく学習方法です。
この学習では、大量のデータセットから正解の情報を学習し、「ある特徴を持つものは、ある事柄に対して正解である」ことを判断できる学習方法です。
簡単な例だと、「赤い色という特徴を持つ果物」が「美味しい」と判断することができます。
しかし、正解として「美味しい」か「美味しくないか」のみを学習させているため、「赤い色という特徴を持つ果物」が「美しい」かは判断することはできません。
教師あり学習を行う方法には次のようなものがあります。

教師なし学習

教師あり学習とは反対に、学習に使用するデータセットに対して、正解は与えません。
この学習は、大量のデータの類似度や規則性を学習し、データの分類を行います。
簡単な例だと、ある果物のデータを大量に集めてくると3つに分けられました。
機械自身には分けられたデータが何を示すものであるかはわかりませんが、次にデータが得られた時、3つのうちどこに該当するデータであるかを判断することができるようになります。
教師なし学習を行う方法には次のようなものがあります。

機械学習を試してみる

言葉のみでは腑に落ちない部分もあるので実際どのように学習しているのかを試してみたくなりました。

そこでweka*2というフリーの機械学習ツールを使っていきます。
(今回、wekaの使い方については特に説明いたしませんので悪しからず。。。)

今回は教師あり学習に「ロジスティック回帰」、教師なし学習に「k平均法」によるクラスタリングを使っていきます。
これらの手法については下記の記事で詳細が紹介されていました。


ロジスティック回帰 - Qiita
ロジスティック回帰とは 線形回帰と似ているが、目的変数が2値のときに利用する。 例えば、この人は商品を購入するか否か、棒に当たるか否か、引っ越すか否か、転職するか否かなどなど。 予測モデルを、以下のロジスティック関数(シグモイ...
https://qiita.com/yshi12/items/3dbd336bd9ff7a426ce9


意味がわかる主成分分析 - Qiita
主成分分析(Principle Component Analysis)とは,どういったものなのかを説明したいと思います.主成分分析は多次元のデータを次元圧縮(データは減らない)する方法です. 主成分分析とは直接は関係ありませんが,次元圧縮の一例として例えばプログラマのスキルとしてpython,Java,給料でプログラマのの熟練度を測るためにGithub上でのstar⭐️の数でスキル(2次元とする)を評価できると 仮定しましょう. それはつまり3次元のデータを2次元に要約(圧縮)したことになります. 次に3
https://qiita.com/NoriakiOshita/items/460247bb57c22973a5f0

お試し1:教師あり学習

wekaのサンプルデータであるアヤメの品種分類データiris.arffを使っていきます。データの内容は以下の通りです。


上記のデータを持った150のデータセットとロジスティック回帰を使って学習をさせてみました。
しかし、学習をさせるだけでは意味がありません。
学習の成果を見るために、10分割交差検定を用いて判別制度を見ていきます。
wekaならここまでやってくれるのでお手軽です。

検証結果の抜粋です。

学習による全体の判別制度96%、 それぞれの正解に正しく判別することができる確率がIris-setosa : Iris-versicolor : Iris-virginica = 100% : 95% : 92%
という結果が得られました。
テストデータということもありなかなかの好成績ですね。

お試し2:教師なし学習

教師あり学習と同じようなデータで試してみます。
ただし、教師なし学習では正解データは必要ないため削除しておきます。
今回はk平均法によるクラスタリングを行ってみました。 元データが3種に分類されていたので3クラスタに分類されるように設定しました。

テストデータとはいえ、綺麗に分類されるわけではなさそうですね。。。
ここで綺麗に分類するような学習ができれば、新たなデータを得た際にどこに分類するかを判別できるようになるわけですね。

かなりざっくりですが、数値や画面をみて少しだけイメージできました。

まとめ

今回は機械学習について簡単にまとめてみました。
しかしながら、この記事の内容は機械学習の表面をなぞった程度でしかありません。

今回のような内容をしっかり把握しておらずとも、はじめに述べたようなAmazon Machine LearningやAzure Machine Learning Studioを利用することで簡単に機械学習は利用可能な世の中になりつつあります。

ただし、効率よく機械学習を取り入れるためにも、どんな方法が何に適しているのかは知っておくべきでしょう。

次回は今の機械学習の流行りをテーマに投稿してみようかと思いますのでお楽しみに。

株式会社ラクスでは一緒に働く仲間を募集しています
今週のランキング
株式会社ラクスからお誘い
この話題に共感したら、メンバーと話してみませんか?