Skip to content

Instantly share code, notes, and snippets.

@nozma
Created November 1, 2018 23:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nozma/6f029a307c9d3cfdc7965ce33d7477a6 to your computer and use it in GitHub Desktop.
Save nozma/6f029a307c9d3cfdc7965ce33d7477a6 to your computer and use it in GitHub Desktop.
Pythonではじめる機械学習 8章
---
title: "8章 おわりに"
author: "R. Ito"
date: "`r Sys.Date()`"
output:
prettydoc::html_pretty:
theme: leonids
highlight: github
---
> ここまで読んだ読者は、重要な教師あり学習および教師なし学習の機械学習アルゴリズムの使い方がわかり、さまざまな機械学習問題を解くことができるようになっているはずだ。
(いいね?)
## 8.1 機械学習問題へのアプローチ
- 問題を大きく捉えよう
- 機械学習はあくまで**意思決定プロセスの一部**
- 機械学習の問題に取り組むときの課題は大きく分けて3つ
- **効果をどのように測定するか?**
- **データはあるか?**
- **ビジネスへの影響は?**
- 効果をビジネス基準で測定できれば一番良いが難しい。
- 代案の一つは「**完全なモデルができたらどうなるか?**」と問うこと。
- 利益がわずかなら止めよう。
- 莫大な利益が見込めるなら取り組む価値がある。
- パラメータチューングよりも、**新しい、多様なデータの取得**と**タスクの再構成**に労力をかけたほうが実りは多い。
### 8.1.1 人間をループに組み込む
- 機械学習が単純な場合だけしか自動化できないとしても、十分利益につながるケースはある。
- **単純なケースは機械学習で自動的に、難しいケースは人間の判断に**、というのは良い戦略である。
## 8.2 プロトタイプから運用システムへ
- **解析チームが見つけた方法を、高性能向けの言語で再実装する**ということは良くある。
- PythonやRはアイデアの素早い実証には向いている。
- スケーラブルなシステム構築にはGo、Scala、C++、Javaなどを検討しよう。
- 参考: [Machine Learning: The High Interest Credit Card of Technical Debt – Google AI](https://ai.google/research/pubs/pub43146)
- "Using the framework of technical debt, we note that it is remarkably easy to incur massive ongoing maintenance costs at the system level when applying machine learning. "
- 適当訳: 技術的負債なフレームワーク使うと機械学習運用するときに激ヤバなメンテナンスコスト簡単に発生するで。
## 8.3 運用システムのテスト
- **オフライン評価**...事前に集めたデータで評価する(本書で説明)。
- **オンラインテスト**...**A/Bテスト**のように実際の環境でアルゴリズムを導入したシステムを評価する。もうちょっと複雑な方法に**バンディットアルゴリズム**がある。
- ざっくり解説
- **A/Bテスト**...ユーザーをランダムに割り当てて、結果を比べる。
- **バンディットアルゴリズム**...ユーザー割り当てにそれまでの評価結果を反映する。良い選択肢がより選ばれやすくなるので、機会損失の低減が見込める。
- **良い選択肢** を選ぶ方法によってバンディットアルゴリズムはさらに分岐する。代表的なのは**ε-greedy方策**。
- 確率εでランダムな選択(探索と呼ぶ)、1-εで良い選択肢の選択(活用と呼ぶ)を行う。
- ε = 1とすると常にランダムな選択をする = A/Bテストといっしょ
## 8.4 独自Estimatorの構築
- **`sklearn`にやりたい処理が実装されてない!!どうすれば!?**
- 無ければ作る
## 8.5 ここからどこへ行くのか
### 8.5.1 理論
### 8.5.2 他の機械学習フレームワークとパッケージ
### 8.5.3 ランキング、推薦システム、その他学習
### 8.5.4 確率モデル、推論、確率プログラミング
### 8.5.5 ニューラルネットワーク
### 8.5.6 大規模データセットへのスケール
### 8.5.7 名誉を得る
## 8.6 結論
> 機械学習が幅広いアプリケーションに対して有用で、実際に実装するのも簡単だ、ということを理解してもらえたと思う。今後もデータの解析を続けてほしい。ただし、問題の全体像を見ることを忘れずに。
## カバー説明
- アメリカオオサンショウウオ(hellbender salamander)
- hellbenderは「地獄に向かうもの」という意味。一説にはその不気味な姿を見た入植者が地獄に戻ろうとしている悪魔の生き物と感じたから、とされている。
- チュウゴクオオサンショウウオ、オオサンショウウオに続いて世界で3番目に大きな水性オオサンショウウオ。
- 皮膚呼吸をするため、浅く流速の早い酸素の豊富な水辺を好むが、生息地近くでの農薬散布などの人間活動の増加により近年急速に数を減らす。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment