機械学習にちょっと興味あります。。。というか、とってもおもしろそう!
コンピューターが学習してどんどん賢くなってくのって、やっぱり可能性を感じます。。
ということで、全く知識が無いのでどんなものなのか、ちょっとカジってみることにしました。
「いちばんやさしいPython機械学習の教本 人気講師が教える業務で役立つ実践ノウハウ」
こちらの本を購入。活用させていただきます。
今回の学び
機械学習とは
人工知能(AI)の分野の1つ。機械に人間と同じように学習する能力を身につけさせるための技術。
例えば…犬と猫の画像(データ)を学習させることで、コンピューターが初めて見た画像でも犬か猫か判断できるようになる。たくさん判断することでその精度がどんどん上がっていく。
そんな感じ。
Google翻訳などは機械学習です。昔は単語は良いけど、文章はおかしな和訳になってたなぁ…今はきちんと訳されるようになりましたね〜👏
機械学習のための関連技術
機械学習をさせるためには、それだけではなく様々な技術が必要です。
- データ収集 >>> 機械学習に必要な大量のデータを集める技術
- 前処理 >>> 収集したデータを機械学習で使える形式に変換、整頓などする技術
- 精度評価 >>> 機械学習で作成したモデルの予測がどの程度正しいか判断する技術
- システム化 >>> 機械学習をシステムに組み込み、利用できるようにする技術
関連技術についてもう少し詳しく解説します。
データ収集
さまざまなデータソース(あるシステムがデータの読み込みや書き出しを行うためのデータの保管場所)からデータを集めることができます。
●サーバーからデータを取得する。
自分が運用しているサーバーでサービスを提供している場合、そのサーバーが利用するデータベースやログ(アプリケーションなどで起こったさまざまな出来事と時刻の記録)から各種情報を集めることができる。
●インターネットからデータを取得する
インターネット上に存在するデータをプログラムなどで収集する方法。
・Web API(Web上でソフトウエア機能を共有する仕組み)経由でデータ取得する方法
・Webスクレイピングで取得する方法
●公開されているデータセットを取得する
公開されているデータセットをダウンロードして入手することもできる。
近年「オープンデータ」という名称で自治体などからデータが提供されている例もある。
いずれにせよ、自分が運用しているサーバー以外の場所からデータを取得して利用する場合はデーター提供元の利用規約などに従う必要があります!(捕まること事も😦)
前処理
取集したデータを機械学習で扱える形に変換する事をいいます。こちらでは大きく分けて4つの作業があります。
●データ操作や欠損値、外れ値への対応
様々なデータソースから取得してきたデータを、1つの表(行と列を持つデータ形式)に過不足なくまとめる事が必要。欠損値(空のデータ)を保管したり外れ値(他のデータから大きく外れたデータ)を除外するという処理も行う。
●文字列の前処理
文字列を機械学習にかけるには前処理が必要。
文字列処理は基本、単語で処理することが多い。しかし、日本語は単語の間にスペースが無いため文字列を単語に分割する必要がある。形態素解析(品詞などの情報を取得)という処理も必要。そのため動詞などの活用がある単語を原型に戻す作業も行う。その後、単語の数を数えたりすることで機械学習のデータとして使えるようになる。
●画像の前処理
画像データもサイズ(ピクセル数)を揃えたり、色の階調を合わせるなど、画像データ形式を合わせる処理が必要。他にも、画像から必要な部分を手作業で抜き出したり、画像のピクセル数を数値に変換するという作業も必要になってくる。
●ラベル付け
機械学習の目的として予測を行いたい場合には、正解が設定された学習データが必要。
したがって、集めたデータにどれが犬か猫か、または対象外かラベル付け(データの正解を学習データに設定する作業)が必要になる場合もあります。基本的には手作業で行うため大変。。
そのため、ラベル付けを効率的に行うためのアプリケーションを作成する事もある!
今日はここまで!!
『機械学習のための関連技術』のデータ収集、前処理までしか解説できませんでした。
続きは次回、解説いたします👍
機械学習のためにはこんなに沢山の工程があるのだと知りました。
・開発の流れとしては >>> データ収集⇨前処理⇨機械学習⇨精度評価⇨システム化
スクレイピングってよく聞くけど何に使うんだろうと思ってました😓なるほどでした!!!
コメント