#AIについて
- 大量のデータを学習することで,モデルを作り,その作ったモデルによって推定を行う
- 従来では,人間がノウハウを用いて予測を立てていたが,それに変わることができ,プログラムによる**定量的な判断が可能?**あと自動化
- 何回かブームがあって今第三次AIブームらしい
- 流行りだからこそいろんな企業がこぞって取り入れようとする→AIの仕事が増加
- 機械学習で大切なことは,学習するためのデータをどうやって前処理するかである
#教師あり学習
- 例)画像認識で認識したもののを人間が正解を教えるもの.だから正解を教える人(教師)の指導能力が低いと,作られるモデルの質も低下する.
- 特徴
- 教師なし学習よりも高精度であり,教える人(教師)が苦労する
- 強化学習よりも答えが明確で学習速度が早い
- 学習モデル
- Neural Network
- 人間の脳の神経回路を頑張って作ろうとしてできたやつ
- 性能が高いが,学習が難しいらしい
- Random Forest
- 重要項目の特定が可能
- これは知らんかった
- Support Vector Machine
- なんか聞き覚えがある
- Neural Network
- 正解の与え方による種類
- 分類
- 出したい正解がカテゴリ(ラベル?)
- ▲が三角であるみたいなことだと思う
- 回帰
- 出したい正解が実数で与えられる.
- 傾向が掴めるため予測などをするときに用いられるのかも?
- 分類
- モデルの特徴
モデル名 | 分類or回帰 | 特徴 | 利用分野 |
---|---|---|---|
Neural Network | 両方 | ・表現力が高い ・データがたくさん必要(パネェ量) |
・画像認識 ・音声認識 etc |
Random Forest | 両方 | ・重要項目をランキングできる ・結果が離散的出る |
・売り上げ予想 ・寿命予想 基本的に推測系? |
Support Vector Machine | 両方 | データが多いとそれに比例した時間がかかるらしい | 上と同じ |
Lasso Regression | 回帰 | ・単純なデータで使う ・重要項目群の特定が可能 |
単純データ向け ・スパムメール判断 頑張ればアルゴリズムでかけそうw |
Ridge Regression | 回帰 | ・単純そうなデータだったとりあえずこれやつらしいw | 上と同じ |
Logistic Regression | 分類 | 単純データ用 | 上と同じ |
- モデルの選び方
- 表を見ながら入力されるデータと,欲しい正解の形から取捨選択を行っていく.
#教師なし学習
- クラスタリング
- 近いものをまとめるグルーピングを行う
- 正解を与えなくても分類が可能であるが,低精度になる
- 人間の判断で分類ができない時にも有効
- 次元圧縮
- 高次元(2次元とか?)のデータを圧縮する
- 種成分分析がよく使われる
- 特徴
- そもそも教師ありと利用目的が異なることが多い
- 人間による正解を教えなくていいから楽
- 基本的にクラスタリングと次元圧縮を使うらしい
- お仕事で使うときの早見表
技術 | 要望 | 手法 |
---|---|---|
クラスタリング | ・ユーザーの性格傾向把握 ・文章分類 etc |
・K-means法 ・ウォード法 etc. |
次元圧縮 | ・ユーザー性格傾向把握 ・高次元データの可視化 etc. |
・PCA ・局所性保存射影(意味不w) etc |
異常検知 | ・初期不良チェック ・製品メンテナンス etc |
・One-Class SVM ・Change Finder etc |
推定システム | ・おすすめ商品提示 ・生活サポート etc |
強調フィルタリング 内容ベースフィルタリング etc |
- クラスタリングのポイント
- 分類かつ明確な正解がある場合は使わない
→教師ありの方が高精度のモデルを作ることができる - 分割数が不明の場合はとりあえずX-means法を使ってみる
-
K-means法
人間が分割数を指定して与えることができる -
X-means法
機会が自動的に分割すうを判断してくれる
-
K-means法
-
正規化が必須
単位などでデータの意味が変わらないように調整が必要
- 分類かつ明確な正解がある場合は使わない
#予測モデルの評価
教師あり学習を用いるとして考える→正解の定義が存在しているため,評価がしやすい
- 学習・評価をする際にはデータを3つに分ける
- 評価のための学習用データ
- 評価用データ
- 全く関係のないテストデータ
- 学習したデータを使っての性能評価は厳禁
→やっていることはテストでいうカンニングと同じ - 学習をしすぎるとモデルが複雑になり,本来欲しいモデルを作成できなくなってしまう.
→高精度のモデルを作りたいのであれば,用途に合わせた適切なモデルの複雑度を決定する必要がある. -
交差検証
学習データとテストデータの組み合わせを変化させて複数回学習・評価することで事実上学習データを増やすことができる- データが少ない時に必須となる
- データが多い時でも有効的に用いることで精度が上がることが見込めるため積極的に行う.
- データ数n個で最大分割数のn分割での交差検証はLeave-one-out CV(LOOCV)という.
- 交差検証を行うかどうかは,学習の計算時間によって定める(要するにリソース?)
-
Hold-out法
交差検証のようではなく,学習データとテストデータを完全分離する手法 - モデル複雑度の決定(パラメタチューニング)
- グリッドサーチ
- ランダムサーチ
- 精度指標
- 分類
- 正解率
- F値
- 少ない事例に対してどれだけそれを性格に分類できたかを示す精度指標
- 多い事例だけでなく,少ない事例も分類できていないと,精度が高い分類モデルとは言えないことを考えている?
- 計算式はググる
- 回帰
- R2乗値(決定係数)
- 正解値(理論値)と予測値をプロットしてその誤差を考えるもの
- 最小二乗法の考えと似てるのかも
- R2乗値(決定係数)
- 分類
#参考
この記事は私が勉強用に作っています.
間違いや古い内容で新しいことなどがあれば,ぜひご指摘いただきたいです.