SlideShare a Scribd company logo
AI入門
2019年2月26日
株式会社KIS
二見 孝一
AI(人工知能)入門
< AIの概要をざっくりと理解する >
数式もコードも使わない AI入門セミナー
AI入門
2/284
□ AIに興味はあるけどイマイチ理解してない
□ 業務が忙しくて勉強する時間が取れない
□ AIで使われる用語の意味がわからない
□ 数学がちょっと苦手
□ ざっくりとAIの概要を知りたい
▶ 今回は数式やプログラムコードを使わず、ざっくりと
AIの概要を説明します
0.はじめに
こんな人のための内容です。
AI入門
3/284
□ AIの全体像を把握できる
□ AIの概要が理解できる
□ AIの用語がわかる
□ 数学的な裏付けはともかく、考え方を理解できる
0.はじめに
こんな風になれます
ちゃんと活用するには数学的理解も必要ですが、
とにかく、AIの概要をざっくりとまとめました。
AI入門
4/284
□数学を使った人工知能のセミナーはこんな感じ
↓今回はこんな感じのセミナーではありません。
数学が出てくる人工知能セミナーのスライド例
0.はじめに
難しい内容ではありません。
今回はAIの概要について簡単にまとめた入門編です。
内容に誤りなどありましたら、ご指摘いただければうれしいです。(;^ω^)
AI入門
5/284
□AIでは記述言語がそもそも数学です。(;^ω^)
・線形代数
・微分積分
・確率・統計 の知識を使います。
考え方の基になった数式を実際のプログラムコードに落とし込む。という
作業になります。
ただし、実際のコーディングでは、ライブラリ・関数群のおかげで数式を隠
ぺいしたコーディングが可能となっています。
今回は数式を使わずに概念を理解することを目的としていますので、視
覚的なグラフなど(次元を落としたものなど)を使用しています。
0.はじめに
とはいうものの・・・・
AI入門
6/284
0.はじめに
1.AIの歴史・現状
(1)人工知能 AI(Artificial Intelligence)の歴史
(2) 現在のブームはディープラーニングが牽引
(3) AI(人工知能)が人間を超えだした
(4) AI(人工知能)が日常生活に
(5) 経済: 平成時代は、日本の失われた30年
(6) 経済: 企業の時価総額ランキング
(7) 経済: 日本の労働生産性は先進国最低
(8) AI領域: 日本は、中国・アメリカに完敗
(9) AI領域: 中国の次世代人工知能発展計画
(10) AIにより激変する社会
(11) AIがつくる未来
(12) AIがつくる未来: Googleの猫
(13) AIがつくる未来: 画像の自動生成
(14) AIがつくる未来: 小説を書く
(15) AIがつくる未来: 練習して歌う
(16) AIがつくる未来: 医療診断を行う
(17) AIがつくる未来: 店舗が無人に
(18) AIがつくる未来: 働くロボット
(19) AIがつくる未来: 自動運転
(20) AIがつくる未来: 人間と討論する
(21) AIがつくる未来: 農林水産業をサポート
(22) AIがつくる未来: いいことばかり?
(23) AIがつくる未来: AI完全版は非公開に。
(24) AIがつくる未来: セキュリティーを破る
(25) AIがつくる未来: フェイク動画
(26) AIがつくる未来: フェイク被害
(27) AIがつくる未来: 予測型取締り(アメリカ)
(28) AIがつくる未来: 天網(中国)
(29) AIは人類を滅ぼすか?
(30) AIの軍事利用が進んでいる
(31) テクノロジーは「使う側の哲学」が問われる
目次
【目次1】
AI入門
7/284
2.AIの区分
(1) AI(人工知能)の区分
(2) AI(人工知能)の種類
【参考】 群知能 (Swarm Intelligence, SI)
3.AIの全体像
(1) AIの全体像をレイヤーで理解する
(2) ハードウェア
(3) 機械学習ライブラリ(フレームワーク)
【参考】 OSSライセンス
(4) 人工知能プラットフォーム
(5) 人工知能アプリケーション(サービス)
(6) ここ数年のAIの歩み
4.Python
(1) AIの開発言語はPythonが主流
(2) 開発環境を支える強力なライブラリ群
5.クラウドとエッジ
(1) クラウドでの処理
(2) クラウドとエッジコンピューティング
(3) エッジコンピューティング 2パターン
目次
【目次2】
AI入門
8/284
6.機械学習(Machine learning)
(1) 機械学習とは
(2) 統計と機械学習の違い
(3) データの前処理が重要
(4) 「学習」と「判定・推論」の2フェーズ
(5) 運用で育てていく
(6) 学習(learning)について
(7) 判定・推論(inference)について
(8) 代表的な学習方法
(9) 教師あり学習(Supervised learning)
(10) 回帰(regression)
(11) 分類(classfication)
(12) 教師なし学習(Unsupervised learning)
(13) クラスタリング(clustering)
(14) レコメンデーション(recommendation)
(15) 機械学習の手法いろいろ
(16) K近傍法(k-nearest neighbor)
(17) 決定木(Decision Tree)
(18) ランダムフォレスト(Random Forest)
(19) ナイーブベイズ(Naive Bayes)
【参考】ベイズ統計
(20) サポートベクターマシン(SVM)
(21) 強化学習( Reinforcement Learning)
(22) 強化学習( MDP: マルコフ決定過程)
(23) 強化学習( 各種アルゴリズム)
(24) 強化学習( Q学習:Q-learning)
(25) 強化学習( SARSA)
(26) 強化学習( モンテカルロ法)
目次
【目次3】
AI入門
9/284
7.ニューラルネットワーク
(1) ニューラルネットワークとは
(2) 活性化関数いろいろ
(3) 活性化関数の特性をグラフで見る
(4) 活性化関数の使用イメージ
(5) 多層パーセプトロンへの拡張
(6) 順伝播法(Forward propagation)
(7) 誤差逆伝播法(Back propagation)
(8) 順伝播と誤差逆伝播
(9) 誤差逆伝播法(Back propagation)の理解
(10) 誤差逆伝播法: データの使い方
(11) 誤差逆伝播法: データの使い方
(ホールドアウト法)
(12) 誤差逆伝播法: データの使い方
(クロスバリデーション法)
(13) 誤差逆伝播法: データの使い方
(リーブワンアウト法)
(14) 誤差逆伝播法: 損失関数 回帰
(15) 誤差逆伝播法: 損失関数 分類
(16) 誤差逆伝播法: 損失関数の特性をグラフ
で
(17) 勾配降下法の考え方
(18) 勾配降下法
(19) 勾配降下法の課題
(20) 勾配降下法の最適化アルゴリズム
(21) バッチサイズ
目次
【目次4】
AI入門
10/284
8.深層学習(Deep learning)
(1) 深層学習(Deep learning)とは
(2) 層を増やすと何がいいのか?
(3) 機械学習と深層学習の違い
(4) 注目されるきっかけ
(5) さまざまなニューラルネットワーク
(6) CNN: 畳み込みネットワーク
(7) CNN: 畳み込み層
(8) CNN: プーリング層
(9) CNN: 全結合層
(10) CNN: 画像の処理イメージ
(11) CNN: 設定するパラメータ
(12) CNN: 関連技術が次々に・・・
(13) CNN: YOLO(You Look Only Onse)
(14) CNN: Mask R-CNN などなど
(15) CNN: WaveNet(音声技術)
(16) CNN: Adversarial Example
(17) RNN: 再帰型ニューラルネットワーク
(18) RNN: 課題
(19) RNN: LSTM(Long Short-Term Memory)
(20) RNN: こんなことができる
(21) 生成モデル
(22) 生成モデル: オートエンコーダ
(23) 生成モデル: VAE
(24) 生成モデル: GAN
(25) 生成モデル: GAN (DCGAN)
(26) 生成モデル: GAN (SRGAN)
(27) 生成モデル: アップサンプリング
(28) 生成モデル: GAN さまざまな派生
(29) 転移学習とは
(30) 転移学習: ファインチューニングとドメイン
適応
(31) ディープラーニング(深層学習)の問題点
(32) 問題: 局所最適解へのトラップ
(33) 問題: 過学習(過剰適合) Overfitting
(34) 問題: 勾配消失
(35) 問題: 次元の呪い(球面集中現象)
(36) 問題: 学習時間増大
目次
【目次5】
AI入門
11/284
8.深層学習(Deep learning)
(37) 問題解決へのアプローチ
(38) 対策: 最適化アルゴリズムの選択
(39) 対策: バッチサイズの適正化
(40) 対策: ハイパーパラメータ
(41) 対策: ハイパーパラメータの最適化
(42) 対策: 正則化(Regularization)
(43) 対策: 早期終了(Early stopping)
(44) 対策: ドロップアウト (Dropout)
(45) 対策: 活性化関数(Maxout)
(46) 対策: バッチ正規化
(47) 対策: 蒸留 (distillation)
(48) 対策: データ拡張(Data Augmentation)
(49) 対策: データの前処理
(50) 対策の結果
(51) 評価について: 正解率、再現率など
(52) 評価について: バイアスとバリアンス
(53) アンサンブル学習 ( Ensemble Learning)
(54) アンサンブル学習の手法
(55) アンサンブル学習の例
(56) 深層強化学習: AIでもっともHotな領域
(57) 深層強化学習: 強化学習のおさらい
(58) 深層強化学習: 各種アルゴリズム
(59) 深層強化学習: 性能比較
(60) 深層強化学習: 年表
(61) 深層強化学習: 応用例
(62) 深層強化学習: 人間を超える能力
目次
【目次6】
AI入門
12/284
9.最後のまとめ
(1) AIの領域は深く・広い
(2) AIのコモディティー化(一般化)が進む
(3) AIがAIの学習を自動化する
(4) これからの世界
(5) これからの日本
(6) これからの日本: 人手不足到来
(7) これからの日本: 人が余るかも
(8) AIがつくる未来は?
参考文献/出典 書籍
参考文献/出典 Webサイト
目次
【目次7】
AI入門
13/284
1.AIの歴史・現状
第3次AIブーム
(1) 人工知能 AI(Artificial Intelligence)の歴史
過去にも盛り上がった。現在は第3次ブーム
AI入門
14/284
1.AIの歴史・現状
(2) 現在のブームはディープラーニングが牽引
AI入門
15/284
1.AIの歴史・現状
(3) AI(人工知能)が人間を超えだした
◇クイズ番組でAIが優勝し、賞金100万ドル獲得
◇チェスの世界チャンピオンに勝利
◇将棋ソフトが永世聖将に勝利
◇囲碁の世界チャンピオンに勝利
AIはさらに進化中
名人を破ったAlphaGo
にも100戦100勝のAIが
出ている
(深層強化学習を使った
AlphaGo Zero)
AI入門
16/284
1.AIの歴史・現状
(4) AI(人工知能)が日常生活に
◇iPhoneのSiri
◇LINEbot女子高生AI りんな
◇GoogleのWebサイト翻訳
◇AI ホームスピーカー
AI入門
17/284
1.AIの歴史・現状
(5) 経済: 平成時代は、日本の失われた30年
◇世界は経済成長しているが、、、、
AI入門
18/284
1.AIの歴史・現状
(6) 経済: 企業の時価総額ランキング
平成元年: 世界トップ50社に32社がランクイン
平成30年: トヨタ1社のみ
世界では時価総額が30年で10倍に。日本は・・・・
元年
30年
AI入門
19/284
1.AIの歴史・現状
(7) 経済: 日本の労働生産性は先進国最低
日本の時間あたり労働生産性を100とすると
アメリカ:151、ドイツ148、フランス145、イタリア118
怠け者イメージのあるイタリア
やスペインより生産性が悪い
AI入門
20/284
1.AIの歴史・現状
(8) AI領域: 日本は、中国・アメリカに完敗 1
◇論文数も予算も人材数も数分の一
AI入門
21/284
1.AIの歴史・現状
(8) AI領域: 日本は、中国・アメリカに完敗 2
30ほど海外大学を図から割愛
AI入門
22/284
1.AIの歴史・現状
(8) AI領域: 日本は、中国・アメリカに完敗 3
AI入門
23/284
1.AIの歴史・現状
(9) AI領域: 中国の「次世代人工知能発展計画」
◇世界トップを目指す、中国の国家計画(2017年策定)
AI入門
24/284
1.AIの歴史・現状
(10) AIにより激変する社会 1
◇ 金融大手ゴールドマンサックス
AIリストラで500人のトレーダーが3人に激減
エンジニアは9000人を雇用
◇ 配車サービスのUber台頭
アメリカ最大手のタクシー会社Yellow Cabが倒産
運転手はNYだけで8万人。市当局が参入規制も。
◇ AIに奪われる仕事 オックスフォード大学 マイケル・A・オズボーン准教授
アメリカでは、今後~20年の間に総雇用者の
半分の仕事が自動化されるリスクが高い
AI入門
25/284
1.AIの歴史・現状
(10) AIにより激変する社会 2
◇ AIに奪われる仕事 オックスフォード大学 マイケル・A・オズボーン准教授
AI入門
26/284
1.AIの歴史・現状
(11) AIがつくる未来
◇AIが人間を模倣し、それをやがて超えていく時代が到来
いま、AIで何ができるようになっているのか?
いくつかの事例を紹介します。
AI入門
27/284
1.AIの歴史・現状
(12) AIがつくる未来: Googleの猫
◇ 有名な2012年のGoogleによる「猫」の認識
「人が教えず、AIが自発的に猫を認識した」大事件
AI入門
28/284
1.AIの歴史・現状
(13) AIがつくる未来: 画像の自動生成
◇ AIが生成した犬の写真。どれか見分けがつきますか?
AI入門
29/284
1.AIの歴史・現状
(14) AIがつくる未来: 小説を書く
◇ 人工知能が書いた小説が一次審査を通過
AI入門
30/284
1.AIの歴史・現状
(15) AIがつくる未来: 練習して歌う
◇ 女子高生AI りんな が歌を自動学習
AI入門
31/284
1.AIの歴史・現状
(16) AIがつくる未来: 医療診断を行う
◇ AIが人間をしのぐ診断能力を持ってきた
AI入門
32/284
1.AIの歴史・現状
(17) AIがつくる未来: 店舗が無人に
◇ Amazon Go、モノタロウAIストア、JR無人店舗
AI入門
33/284
1.AIの歴史・現状
(18) AIがつくる未来: 働くロボット
◇ ボストンダイナミクスのロボット犬が東京の工事現場で仕事
AI入門
34/284
1.AIの歴史・現状
(19) AIがつくる未来: 自動運転
◇ Google、Uber、テスラ、トヨタなど全自動車メーカーが
参入し、実用化は目前
(すでに技術はあるが、法整備が追い付いていない)
AI入門
35/284
1.AIの歴史・現状
(20) AIがつくる未来: 人間と討論する
◇ IBMが人間とAIのガチ討論会(ディベート)を開催
テーマは「保育園や幼稚園に補助予算を出すべきか?」
討論判定では人間が勝利したが、知識量アンケートでは7割が
AIを支持した
AI
人間
AI入門
36/284
• 京東の「AI植物工場」ではAIが栽培環境を管理し、農薬
を使わずに従来の方法より収穫量が数十倍も多い。逆
に水は90%以上削減。
• テンセントAIラボは「Autonomous Greenhouse Challenge(AI技
術だけで作物を栽培するコンテスト)」でAI戦略部門1位。
• 4カ月で61平方メートルの面積の温室で約3500kgの
キュウリを育てたが、これは人で栽培する収量の5倍
• アリババも養豚にAIを導入 などなど
1.AIの歴史・現状
(21) AIがつくる未来: 農林水産業をサポート
◇ AIで農林水産業が飛躍的に効率化される
【中国での活用例】
AI入門
37/284
1.AIの歴史・現状
(22) AIがつくる未来: いいことばかり?
◇ ユートピア? それともディストピア?
AI入門
38/284
なぜ?
Amazonなどにコメントを自動投稿したり、ECサイトな
どで製品レビューをフェイクコメントするなど、AIが悪
用される恐れがある。
1.AIの歴史・現状
(23) AIがつくる未来: AI完全版は非公開に。
◇ OpenAI:
高精度のAIテキストジェネレータを開発したが、
完全版は非公開とすることに決定。
AI入門
39/284
1.AIの歴史・現状
(24) AIがつくる未来: セキュリティーを破る
◇ Webサービスなどで、ゆがんだ画像から文字を読み取っ
て入力を促すのが「CAPTCHA」
テキストベースのCAPTCHAなら、AIが0.05秒で突破
サイトによっては90%以上が突破されるというテスト結果に
AI入門
40/284
1.AIの歴史・現状
(25) AIがつくる未来: フェイク動画
◇ トランプ氏を非難するオバマ元大統領のフェイク動画
音声も動画もAIが生成した偽物
AI入門
41/284
1.AIの歴史・現状
(26) AIがつくる未来: フェイク被害
◇ 有名女優のAIがアダルト動画に出演
ハリーポッター・ハーマイオニー役 エマ・ワトソンの偽動画も出回る
AI入門
42/284
1.AIの歴史・現状
(27) AIがつくる未来: 予測型取締り(アメリカ)
アメリカの警察が使っている予測型取締まりシステムの多く
が、差別による不当逮捕などを含む過去のデータを用いて
訓練されていることが明らかになった。
中には意図的なデータの改ざんや操作も見られ、差別を継
続させるだけでなく、それに基づく新たなデータを生み出す
悪循環になる可能性が指摘されている。
AI入門
43/284
1.AIの歴史・現状
(28) AIがつくる未来: 天網(中国)
多数の監視カメラが設置され、13億人の中から1人を特定
するのに約3秒。7分で身分と居場所が特定される。
交通違反などもカメラで自動検出
◇ 天網(スカイネット)
◇ 金盾(グレートファイアウォール)
◇ 信用中国(クレジット・チャイナ)
社会的信用点数が低いと、鉄道や航空機に乗れない。
AI入門
44/284
1.AIの歴史・現状
(29) AIは人類を滅ぼすか?
◇ ホーキンス博士、マスク氏などはAIへの警鐘を鳴らす。
◇ 「2001年宇宙の旅」HAL9000のようなことが起こる?
・マイクロソフトのTayが差別発言を繰り返し運用停止に
・中国テンセントのチャットAIが共産党批判で運用停止に
・フェイスブックのAI同士(ボブとアリス)の会話が、人間
には理解不能となり対話実験中止に
AI入門
45/284
1.AIの歴史・現状
(30) AIの軍事利用が進んでいる
◇ 核兵器ではなくAIが究極の武器になりつつある
・戦闘機の自動操縦システムは人間に勝利
・完全無人の自動操縦兵器が戦場で人と戦う
・世界各国で最先端のAI研究は軍事部門
すでに実戦で使われている
無人機「プレデター」
AI入門
46/284
1.AIの歴史・現状
(31) テクノロジーは「使う側の哲学」が問われる
Google CEO スンダー・ピチャイ氏
「武器用のAIは開発しない」と宣言
テスラのCEO イーロン・マスク氏
「AIは悪魔を呼ぶ技術」として利用規制を提案
いくつかの日本の大学(広島大学など)
「軍事研究公募には参加しない」という方針
【ノーベル賞】
ダイナマイトを発明したノーベルは、自分が死亡したと
いう新聞記事(誤報)に「死の商人死す」と書かれた
ことにショックを受けた。
そこで、遺産を「人類のために最大たる貢献をした
人々に分配されるものとする」と遺言した。
AI入門
47/284
2.AIの区分
(1) AI(人工知能)の区分
人工知能 AI(Artificial Intelligence)
機械学習 ML(Machine Learning)
ニューラルネットワーク(Neural Network)
深層学習 DL(Deep Learning)
AI入門
48/284
2.AIの区分
人工知能 AI(Artificial Intelligence)
AI
強いAI (感情を持つ) アトムやドラえもん
弱いAI
特化型AI(AGI) ★いまはここが中心
汎用型AI(GAI)
AI入門
49/284
2.AIの区分
人工知能 AI(Artificial Intelligence)
機械学習 ML(Machine Learning)
深層学習 DL(Deep Learning)
AI
強いAI (感情を持つ)
弱いAI
特化型AI(AGI)
汎用型AI(GAI)
ML
教師あり学習
回帰(Regression)
分類(Classification)
異常検出(Anomaly detection)
教師なし学習 クラスタリング、分布推定
強化学習
DL
生成モデル
CNN(Convolutional Neural Network)
RNN(Recurrent Neural Network)
AI入門
50/284
2.AIの区分
(2) AI(人工知能)の種類
種 類 概 要
機械学習 コンピュータ上のアルゴリズムが学習し、判断を行う。
遺伝的アルゴリズム
生物の遺伝子を模倣する。コンピュータ上の遺伝子
で突然変異や交配を行う。
群知能
生物の群れを模倣する。シンプルなルールに従って
行動する個体の集合体が、集団として高度に振る
舞う。
ファジイ制御
あいまいさを許容したファジイ集合を利用し、人の経
験則に近い制御を行う。家電等に利用。
エキスパートシステム
人間の専門家の判断能力を模倣する。知識に基づ
く推論・アドバイスが可能。
AI入門
51/284
分権化し自己組織化されたシステムの集合的ふるまいに基
づいた人工知能技術
多数のエージェントを用意してそれぞれが各々相互作用を起
こしながら最適解を探し出すが、中央管理するわけではなく、
それぞれが自発的に行動し、結果的に全体としての創発
(emergence)をもたらす
アリの巣、鳥・動物・魚の群れ、細菌のコロニーの模倣など、
アルゴリズムは自然界からヒントを得たものが多い
2.AIの区分
【参考】 群知能 (Swarm Intelligence, SI) 1
AI入門
52/284
2.AIの区分
【参考】 群知能 (Swarm Intelligence, SI) 2
【アルゴリズム】
利他的アルゴリズム、蟻コロニー最適化、人工蜂コロニーアルゴリズム、
人工免疫システム、荷電系探索、カッコウ探索、ホタルのアルゴリズム、
重力探索アルゴリズム、Intelligent Water Drops、マルチスウォーム最
適化、粒子群最適化、河川形成力学。自己駆動粒子群。確率的拡散
探索 など
群知能によるドローンの群制御
AI入門
53/284
3.AIの全体像
(1) AIの全体像をレイヤーで理解する
▲
上
位
下
位
▼
AI入門
54/284
3.AIの全体像
(2) ハードウェア 1
▲
上
位
下
位
▼
AI入門
55/284
◇CPUより並列処理に優れるGPU,TPUが使われる
例: 10層・10億個パラメータのニューラルネットワークの場合、
CPUだと約1年。GPUだと一ヶ月で完了
なので、学習時は時短のため複数のGPUを並列計算させる
◇クラウド側のGPUも使える
学習・研究用のGoogle Colaboratoryはなんと無料
◇ FPGA( Field Programmable Gate Array )
ASICと異なり回路がプログラムで書換え可能で、消費電力にも優れる
今後クラウドサーバーはFPGA化されていく
3.AIの全体像
(2) ハードウェア 2
AI入門
56/284
3.AIの全体像
(2) ハードウェア 3
AI入門
57/284
3.AIの全体像
(3) 機械学習ライブラリ(フレームワーク) 1
▲
上
位
下
位
▼
AI入門
58/284
3.AIの全体像
(3) 機械学習ライブラリ(フレームワーク) 2
AI入門
59/284
・GAFAや大学などがOSSでAIライブラリを提供している
各企業はそれらのフレームワークを利用してAIシステムを開発可能
3.AIの全体像
(3) 機械学習ライブラリ(フレームワーク) 3
ライブラリ 開発・サポート ライセンス 概要
TensorFlow Google Apache データフローグラフを使用したライブラリ
Cognitive toolkit MicroSoft MIT CNTKから名称変更
MXNet Amazon Apache 大学で開発されていたものを支援
PaddlePaddle 百度(Baidu) Apache 中国製のAIフレームワーク
Pytorch Facebook BSD Dedine by Runのライブラリ
Keras Google MIT TensorFlowのラッパー
Chainer
Preferred
Networks
MIT 日本製のAIライブラリでDedine by Run
DL4J skymind Apache JavaのAIライブラリ
AI入門
60/284
3.AIの全体像
(3) 機械学習ライブラリ(フレームワーク) 4
AI入門
61/284
類型
複製・
再頒布
可能
改変可能
改変部分の
ソース公開義務
他のコードと組
み合わせた場合
他のコードの
ソース公開義務
コピーレフト型 ○ ○ ○ ○
準コピーレフト型 ○ ○ ○ ×
非コピーレフト型 ○ ○ × ×
3.AIの全体像
【参考】 OSSライセンス
ライブラリフレームワークの多くは非コピーレフト型
ApatchやBSD、MITライセンスとなっている
厳しい◀ GPL > LGPL > Apatch > BSD > MIT ▶緩い
AI入門
62/284
3.AIの全体像
(4) 人工知能プラットフォーム 1
▲
上
位
下
位
▼
AI入門
63/284
◇クラウドベースでの有料プラットフォーム
◇各社から多様なサービスが提供されている
画像認識、画像生成、動画分析、音声認識、音声生成、機械翻訳、
自然言語処理(認識)、自然言語処理(生成) など
例: IBMのWatson、MicroSoftのCognitive Services
◇日本企業はこの領域でも苦戦中
3.AIの全体像
(4) 人工知能プラットフォーム 2
AI入門
64/284
3.AIの全体像
(4) 人工知能プラットフォーム 3
◇アメリカAI企業の事業領域マッピング
AI入門
65/284
3.AIの全体像
(5) 人工知能アプリケーション(サービス) 1
▲
上
位
下
位
▼
AI入門
66/284
◇各企業が開発した様々なサービスを提供している
◇日本企業は世界から周回遅れだが、やっと様々な
サービスがリリースされるようになってきた
◇これまで関係が薄かった業界や企業がコラボして
新しいサービスを提供しているのが特徴
◇従来のビジネスモデルを破壊するような、特色ある
サービスが出現している
3.AIの全体像
(5) 人工知能アプリケーション(サービス) 2
AI入門
67/284
3.AIの全体像
(6) ここ数年のAIの歩み① 2012~2014
AI入門
68/284
3.AIの全体像
(6) ここ数年のAIの歩み② 2015~2016
AI入門
69/284
3.AIの全体像
(6) ここ数年のAIの歩み③ 2017~2018
AI入門
70/284
4.Python
(1) AIの開発言語はPythonが主流(人気言語No1)
シンプルで読みやすい文法
強力な内省(イントロスペクション)機能
直感的なオブジェクト指向
手続き型のコードによる、自然な表現
パッケージの階層化もサポートした、完全なモジュール化サポート
例外ベースのエラーハンドリング
高レベルな動的データ型
広範囲に及ぶ標準ライブラリとサードパーティのモジュール
拡張とモジュールはC/C++で書くのが容易(Java、.NETも利用可)
アプリケーションに組み込んでスクリプトインタフェースとして使える
AI入門
71/284
4.Python
(2) 開発環境を支える強力なライブラリ群 1
ライブラリ 主な用途
NumPy 数値計算用で高速に行列やベクトル演算を行う
Pandas データの読込みや欠損値処理など機械学習にも使う
SciPy 科学計算用ライブラリ
Jupyter Python の実行環境でコードと出力結果を記録可能
Matplotlib 棒グラフ、散布図、ヒストグラムなどをグラフ描画する
plotly リッチでインタラクティブなグラフを描画する
wxPython クロスプラットフォームのGUIライブラリ
Kafka-Python Apache Kafka(分散ストリーミングプラットフォーム) のクライアント
PySpark ビッグデータ処理用に使う
AI入門
72/284
4.Python
(2) 開発環境を支える強力なライブラリ群 2
ライブラリ 主な用途
TensorFlow Googleによるディープラーニング用ライブラリ
scikit-learn 機械学習用訓練/検証データの分割や交差検証等が利用可
Theano 多次元配列を最適化して使用できる機械学習ライブラリ
Chainer 動的に計算グラフを構築可能な日本製の深層学習ライブラリ
Pytorch chainerからforkして作られたライブラリ
Pyevolve Pure Python文法で記述できて遺伝的アルゴリズムで利用
Deap 拡張性が高くデータ構造からアルゴリズムまでカスタマイズ可
Stan MCMCサンプラーでRからも使える。PyStanはラッパー
Edward Tensorflowに基づいた確率的プログラミングライブラリ
Keras TensorFlow や CNTK 、 Theano などに対応したラッパー
AI入門
73/284
4.Python
(2) 開発環境を支える強力なライブラリ群 3
ライブラリ 主な用途
Requests Web API用でHTTP実装時のコードをシンプルに書ける
Twython Twitter APIをより使いやすくするラッパー
Django 全部乗せのWeb開発系フレームワーク
kivy スマホやマルチタッチ対応のクロスプラットフォームUIライブラリ
cocos2d ゲームライブラリ
lxml xmlやhtmlをパースしたりスクレイプに使用する
Selenium lxmlと組み合わせてスクレイプに使用
Scrapy スクレイピングフレームワーク
simplejson JSONのエンコード・デコードライブラリ
Py2exe スクリプトをWindows用の.exeへ変換するライブラリ
pep8 Pep8のコーディング規約に応じたソースコードチェック
pdb ブレークポイント、シングルステップ実行等のデバッガ
AI入門
74/284
4.Python
(2) 開発環境を支える強力なライブラリ群 4
各ライブラリについては書籍などを参考に
AI入門
75/284
5.クラウドとエッジ
(1) クラウドでの処理
AI入門
76/284
◇データ処理増大に伴い、すべてをクラウド側で
処理するのに不都合が出てきた。
・通信料やクラウド利用料が増大する
・インターネット経由で処理速度が遅くなる
・セキュリティー的にデータをクラウドに上げたくない
・ネット環境が不安定だと処理が止まる
▶これからはエッジコンピューティングが使われる
(フォグコンピューティングと呼ばれることもある)
5.クラウドとエッジ
(2) クラウドとエッジコンピューティング
AI入門
77/284
5.クラウドとエッジ
(3) エッジコンピューティング 2パターン
パターン1: 機械学習はクラウドで行い、学習済みモデルをエッジで処理する。
パターン2: 機械学習もエッジで行い、クラウドは分析に利用する。
AI入門
78/284
6.機械学習(Machine learning)
機械学習(Machine learning)
人工知能 AI(Artificial Intelligence)
機械学習 ML(Machine Learning)
ニューラルネットワーク(Neural Network)
深層学習 DL(Deep Learning)
AI入門
79/284
6.機械学習(Machine learning)
人工知能 AI(Artificial Intelligence)
機械学習 ML(Machine Learning)
深層学習 DL(Deep Learning)
AI
強いAI (感情を持つ)
弱いAI
特化型AI(AGI)
汎用型AI(GAI)
ML
教師あり学習
回帰(Regression)
分類(Classification)
異常検出(Anomaly detection)
教師なし学習 クラスタリング、分布推定
強化学習
DL
生成モデル
CNN(Convolutional Neural Network)
RNN(Recurrent Neural Network)
AI入門
80/284
データから反復的に学習し、そこに潜むパターンを見つけ
出し、学習結果を新たなデータに適用し予測すること
機械学習:
大量のデータを分析し、今後を予測するのが目的
統計:
データがどのようなものであるのか説明するのが目的
6.機械学習(Machine learning)
(1) 機械学習とは
統計との違い
AI入門
81/284
6.機械学習(Machine learning)
(2) 統計と機械学習の違い 1
AI入門
82/284
6.機械学習(Machine learning)
(2) 統計と機械学習の違い 2
AI入門
83/284
6.機械学習(Machine learning)
(3) データの前処理が重要
◇「ゴミを入れればゴミしか出てこない」
データ分析作業の労力の7-8割がデータの前処理と言われている
AI入門
84/284
◇1.学習: 訓練データで学習モデルを作成する
◇2.判定: 学習済みのモデルを使って未知のデータを推定する
6.機械学習(Machine learning)
(4) 「学習」と「判定・推論」の2フェーズ 1
1.学習
2.判定
AI入門
85/284
6.機械学習(Machine learning)
(4) 「学習」と「判定・推論」の2フェーズ 2
◇1.学習: 訓練データで学習モデルを作成する
◇2.判定: 学習済みのモデルを使って未知のデータを推定する
AI入門
86/284
6.機械学習(Machine learning)
(5) 運用で育てていく
◇データの変化に合わせて再学習が必要
AI入門
87/284
◇訓練データを精度よく処理できるアルゴリズムと
パラメータを作成・設定する
6.機械学習(Machine learning)
(6) 学習(learning)について
訓練データ
アルゴリズム
学習済モデル
(学習器)
を作成する
AI入門
88/284
◇未知のデータを学習済モデルで判定・推論を行う
回帰や分類などに使われる
6.機械学習(Machine learning)
(7) 判定・推論(inference)について
未知のデータ
学習済モデル
これはバラです
AI入門
89/284
6.機械学習(Machine learning)
(8) 代表的な学習方法
方法 概要 適用
教師あり学習
(Supervised Learning)
正解の訓練データを使って学習し、
過去の正解にできるだけ近似(回帰
/分類)する入出力パターンのモデ
ルを構築する
回帰
分類
異常検出
教師なし学習
(Unsupervised Learning)
正解が決まっていない訓練データを
使って学習し、クラスタリングや次
元削減によって本質的なデータ構造
のモデルを構築する
クラスタリング
レコメンデーション
強化学習
(Reinforcement Learning)
プログラムの行動に対するフィード
バック(報酬・罰)を訓練データと
して学習し、次に最も取るべき行動
方針のモデルを構築する
AI入門
90/284
入力する学習データに正解(正しい答え)をセットで与
え、データの相関関係を学習させる方法
【例】
犬の写真には「犬」という正解、猫の写真には「猫」とい
う正解データをセットにし、評価するデータが「犬」か
「猫」かを判定させる。
家賃の予測、スパムフィルタ、文字や写真の認識等に使う
6.機械学習(Machine learning)
(9) 教師あり学習(Supervised learning)
AI入門
91/284
入力値に対する出力値を予測し、その結果を求める場合に使う
例: 集客人数や商品の売り上げ予測など
6.機械学習(Machine learning)
(10) 回帰(regression) 1
もっとも誤差の少ない関数
を見つけて値を予測する
?
AI入門
92/284
6.機械学習(Machine learning)
(10) 回帰(regression) 2
AI入門
93/284
入力値を事前に定義したクラスに分類し、その結果を出力する場合に使う
例: 写真に写った花がバラなのかボタンなのか判定する など
6.機械学習(Machine learning)
(11) 分類(classfication) 1
きちんと分類できる関数を
見つけて推定する
これは青の仲間
AI入門
94/284
6.機械学習(Machine learning)
(11) 分類(classfication) 2
AI入門
95/284
入力する学習データに「正解」かどうかのデータを
付与しない。
異常検出、リコメンデーション、購買層のグループ
分け、多次元データの次元数削減などで使用する
6.機械学習(Machine learning)
(12) 教師なし学習(Unsupervised learning)
AI入門
96/284
データの類似性を見つけ、自動的にいくつかのグループに分類する場合に使う
例: 顧客ごとのセグメンテーションを見つける など
6.機械学習(Machine learning)
(13) クラスタリング(clustering) 1
データの特徴から、いくつかの
グループを自動で見つける
AI入門
97/284
6.機械学習(Machine learning)
(13) クラスタリング(clustering) 2
AI入門
98/284
6.機械学習(Machine learning)
(14) レコメンデーション(recommendation)
AI入門
99/284
6.機械学習(Machine learning)
(15) 機械学習の手法いろいろ 1
AI入門
100/284
手法 内容
K近傍法
k-nearest neighbor
もっとも近いK個のデータを用いた多数決により分
類する。シンプルなアルゴリズム。
決定木
Decision Tree
枝分かれでデータを分類する。
Tree構造を訓練することで適切な予測を行う。
ナイーブベイズ
Naive Bayes
ベイズの定理(確率論)をもとにしており、教師あり
学習の分類タスクでよい成績をだしている。
サポートベクターマシン
Support Vector Machine
多次元における超平面(3次元における平面拡
張)を訓練しデータを分類する。
優秀なパターン認識を発揮する。
強化学習
Reinforcement Learning
エージェントが試行錯誤で「環境における価値を
最大化するような行動」を学習する。
ニューラルネットワーク
Neural Network
脳の神経細胞を模した数学モデルで、最適化さ
れたネットワークは高い性能を示す。
6.機械学習(Machine learning)
(15) 機械学習の手法いろいろ 2
AI入門
101/284
6.機械学習(Machine learning)
(16) K近傍法(k-nearest neighbor)
最も単純なアルゴリズムの一つで、特徴空間中でテストデータに最も似ている
データを探す。
似たようなデータをk個集めてそれらの多数決から目的とする値を求める
AI入門
102/284
6.機械学習(Machine learning)
(17) 決定木(Decision Tree)
条件分岐する木構造を用いて分類や回帰を行う
分類木: 性別のように、分類を目的にして、決定木のアルゴリズムを使用する
回帰木: 株価の変動等、データから未来の数値を予想する
AI入門
103/284
6.機械学習(Machine learning)
(18) ランダムフォレスト(Random Forest)
決定木を複数組み合わせて、各決定木の予測結
果を多数決するアンサンブル学習で結果を出す
AI入門
104/284
単純ベイズ法とも言われ、ベイズ確率の原理に基づ
いた分類を行う。訓練データの特徴量をもとに、
個々の結果が起こる観測確率を計算し、ラベルの
ないデータを分類するアルゴリズム。
「パラメータを確率変数として考える」
スパムメールの分類にも使われている。
「各特徴が独立という仮定」を置いているため「デー
タについてNaiveな想定」と言われる。
6.機械学習(Machine learning)
(19) ナイーブベイズ(Naive Bayes)
AI入門
105/284
「主観確率」を扱い、従来の記述・推計統計学とは
考え方がかなり違う。
事前確率を元に、得られたデータから新たな確率
を導出する統計学。新しい情報が得られたら確率
をどんどん更新していく。(3つのドア問題)
記述統計学: 標本に見られる特徴をわかりやすく表す
推計統計学: 標本を分析し母集団について推測する
ベイズ統計学:標本を必ずしも必要としない。
データが不十分でも何とかして確率を導く。
6.機械学習(Machine learning)
【参考】ベイズ統計
AI入門
106/284
6.機械学習(Machine learning)
(20) サポートベクターマシン(SVM) 1
優秀な認識性能を持ち、高い識別能力を持つ。
「マージン最大化」という考え方で識別境界を決定する。
AI入門
107/284
6.機械学習(Machine learning)
(20) サポートベクターマシン(SVM) 2
線形分離ができない場合でも、高次元空間に写像して線形分離して識
別境界を決定する。(超強力なカーネル法)
「n次元空間の分類境界は(n−1)次元の超曲面」
AI入門
108/284
6.機械学習(Machine learning)
(21) 強化学習( Reinforcement Learning) 1
与えられた「環境」における価値(利益)を最大化するよう「エージェント」
を学習させる。
目先の価値ではなく、試行錯誤を通じて「価値を最大化するような行動」
を取るように「報酬」を与える。
どのように方策を書き換えていくのか(利用と探査)と、方策をどのように
決定するか(価値をどのように反映するか)がポイント
AI入門
109/284
6.機械学習(Machine learning)
(21) 強化学習( Reinforcement Learning) 2
強化学習ではその時点で貰える報酬(即時報酬)ではなく、(将来に渡る)価値を
最大化する。よって、近視眼的な行動ではなく、より未来を考えた価値を最大化
する行動を取る必要がある。
このため、エージェントは「ある状態においてある行動を取った時の価値」の一番
高い行動を選択するようにする。この価値のことを Q値 (状態行動価値)と呼ぶ。
Q値は「報酬」ではなく「価値」。つまり、Q値とは報酬ではなく、長期的価値を値と
して持っている関数となる。
「その行動によって、価値の高い状態に遷移できるような行動」を学習する。
ただし、時間制限しない場合、ローリスクローリターンな行動に偏りがちになるため、
時間による割引の概念を導入する。つまり、早く行動しないと同じ行動でも得られ
る報酬が減るように「割引率」を設定する。
・報酬の総和を最適化する
・時間に対する報酬の割引を導入する
AI入門
110/284
6.機械学習(Machine learning)
(22) 強化学習( MDP: マルコフ決定過程)
強化学習では、エージェントが取得する利得(累積報酬)を最大化するよ
う、状態から行動へのマッピング(政策)を獲得させる。
マルコフ決定過程(Markov decision processes: MDP)によってモデル化
し、学習アルゴリズムを考える。
マルコフ決定過程では、次の状態への遷移が, そのときの状態と行動に
のみ依存し、それ以前の状態や行動には関係ないことを前提としている。
・環境は状態を持ち、それは完全に正確に観測可能であること。
・エージェントが行動を行うと、環境が確率的に状態遷移し、環境から確率的に報酬が得ら
れるが、遷移確率と報酬が得られる確率は事前に分からず、学習過程で学習していくこと。
・報酬の指数移動平均を最大化するように行動すること。
SMDPやPOMDPなどの数理モデルも考案されている。
AI入門
111/284
6.機械学習(Machine learning)
(23) 強化学習( 各種アルゴリズム)
最近は深層学習(Deep learning)と組合わせて使われる
環境・行動・報酬のデータ化、環境の状態観測、報酬の計算等のアルゴリズムは、問題に
応じて設定する
SARSA
AI入門
112/284
6.機械学習(Machine learning)
(24) 強化学習( Q学習:Q-learning)
アルゴリズム 特徴
Q学習
Q-learning
代表的な方法で、行動価値関数(Q値)を学習し、このQ関
数で報酬が最大の行動を取る。
次の状態がどれくらいの価値を持つかの期待値を(現在推
定されている値の)最大値にする方法。
期待値(≈実際の報酬)と見込みの差分から学習をしていくが、
この差分(誤差)をTD誤差といい(Temporal Difference)、TD
誤差により学習を行うTD学習の一種。
Q関数更新後に、実際に行う次の行動Action(next)を、ε-
greedy法にしたがって決定するので、Q関数の更新に使用し
たAction(next)と、次の時刻での実際の行動Action(next)が
異なる可能性がある。
※ε-greedy法
報酬が最大になると期待される行動を選択するが、ときおり
ランダムに行動して、探索と最適化のバランスをとる手法
AI入門
113/284
6.機械学習(Machine learning)
(25) 強化学習( SARSA)
アルゴリズム 特徴
SARSA
State, Action, Reward, State(next), Action(next)の頭文字
をとった手法で、Q学習では、期待値の見積もりを現在推定
されている値の最大値で置き換えたが、SARSA の場合、実
際に行動してみたらどうなったかを使って期待値の見積もり
を置き換える。なので、現在の価値を更新するためにエー
ジェントはもう一度行動する必要がある。
SARSAでは次の時刻の行動Action(next)を、Q関数の更新
より前に決定する。(SARSAも次の行動Action(next)はε-
greedy法にしたがって決定)つまりSARSAでは、実際に行う
次の行動のQ値を使用してQ関数を更新する。
ステップ数が進み、ε-greedy法がほとんど探索を行わず最
適行動のみを行う場合には、Q学習もSARSAも同じとなる。
一方で試行の初期で探索が多い場面では、SARSAは実際
の行動を反映し、Q学習は期待される最大のものを使用する
という特徴がある。Q関数の更新に最適値を使わないため、
Q学習よりも収束が遅いが局所解に陥りにくい。
AI入門
114/284
6.機械学習(Machine learning)
(26) 強化学習( モンテカルロ法)
アルゴリズム 特徴
モンテカルロ法
Q学習やSARSAとは違い、Q値の更新のときに「次の時点のQ値」を
使わない。何らかの報酬が得られるまで行動をしてみて、その報酬
値を知ってから、辿ってきた状態と行動に対してその報酬を分配し
ていくという手法。なので、モンテカルロ法では報酬が得られて初め
てQ値を更新することができる。(報酬が得られるまでQ値を更新す
ることができない。)
一方Q学習やSARSAは「現在推定中のQ値でも、未来に渡る価値を
含むはずだ」という前提で、次の時点でのQ値を使って常に更新を行
う。モンテカルロ法は一度未来を見てから一気にQ値の更新をかけ
るため、遠い未来の報酬も比較的早く学習できるという特徴がある。
各ステップごとにQ関数を更新しないという特徴があり、試行が終了
した時点で、Q関数を全ステップ分一気に更新する。そのため、試行
終了までの各ステップでの(状態s、行動a、得た報酬r)をすべて記
憶しておく。試行の途中でQ関数を更新できないが2つの利点がある。
・実際に得た報酬でQ関数を更新できる
・「報酬をうまく規定しづらいタスク」の学習に対応しやすい
AI入門
115/284
7.ニューラルネットワーク
ニューラルネットワーク
人工知能 AI(Artificial Intelligence)
機械学習 ML(Machine Learning)
ニューラルネットワーク(Neural Network)
深層学習 DL(Deep Learning)
AI入門
116/284
◇パーセプトロン: 人間の脳を模した数学モデル
7.ニューラルネットワーク
(1) ニューラルネットワークとは 1
AI入門
117/284
◇パーセプトロン: 人間の脳を模した数学モデル
入力(0,1)を受け取り、処理を行い、しきい値を超えたら出力する
7.ニューラルネットワーク
(1) ニューラルネットワークとは 2
入力値に対する出力値を決めるのが
活性化関数
入力1
入力2
入力3
+バイアス
重み2
重み3
出力
重み1
◇シグモイドニューロン: 入出力が実数となる
これを多層化したものが多層ニューラルネットワーク
AI入門
118/284
7.ニューラルネットワーク
(2) 活性化関数いろいろ
関数名 出力 特徴
ステップ関数 0,1
入力値が0未満なら出力値は0
入力値が0以上なら出力値は1
シグモイド関数 0~1
入力値が小さいと出力値は0に近づく
入力値が大きいと出力値は1に近づく
2クラスの識別に利用
ReLU関数 0~
入力値が0未満なら出力値は0
入力値が0以上なら出力は入力値
Leaky ReLU関数 -0.01~
入力値が0未満ならわずかな値を取る
この微小値が計算を進行させる
Tanh関数 -1~1 0を中心にマイナスとプラス側で相同
ソフトマックス関数 0~1
最終的な合計値が1となるように出力
多クラス識別に利用
恒等関数 入力値
入力と同じ値を出力する
回帰で使用することがある
AI入門
119/284
7.ニューラルネットワーク
(3) 活性化関数の特性をグラフで見る 1
それぞれの特徴に応じて使い分ける
AI入門
120/284
7.ニューラルネットワーク
(3) 活性化関数の特性をグラフで見る 2
それぞれの特徴に応じて使い分ける
AI入門
121/284
7.ニューラルネットワーク
(4) 活性化関数の使用イメージ 1
シグモイド関数の例: バラかどうかを判定する
バラである確率が大きいか小さいかを(0~1)の出力値として返す
X:入力*重みの合計+バイアス
1
0
バラの確立 0.2 バラの確立 0.8
AI入門
122/284
7.ニューラルネットワーク
(4) 活性化関数の使用イメージ 2
AI入門
123/284
7.ニューラルネットワーク
(5) 多層パーセプトロンへの拡張
単純な線形モデルから、非線形モデルへ拡張する
より複雑な事象に対応できるモデルを構築できる
多層パーセプトロン
パーセプロトンを結合して多層化したもの
出力
2
入力
1
入力
2
入力
3
隠層
1
隠層
2
隠層
3
出力
1
パーセプロトン
AI入門
124/284
7.ニューラルネットワーク
(6) 順伝播法(Forward propagation)
入口から出口に向かってパラメータ(重みとバイア
ス)を更新しながら処理を進める
出口に向かって各ユニットの
パラメータを更新する
出力
2
入力
1
入力
2
入力
3
隠層
1
隠層
2
隠層
3
出力
1
出力
2
入力
1
入力
2
入力
3
隠層
1
隠層
2
隠層
3
出力
1
更新
AI入門
125/284
7.ニューラルネットワーク
(7) 誤差逆伝播法(Back propagation)
出力結果の精度を上げるための工夫
出力結果を正解に近づけるように、ニューラルネットワークを出力から
入力まで逆方向にさかのぼって、重みとバイアスを更新する
出口からさかのぼってパラメータを更新
正解との差を計測するのが損失関数
出力
2
入力
1
入力
2
入力
3
隠層
1
隠層
2
隠層
3
出力
1
更新
出力
2
入力
1
入力
2
入力
3
隠層
1
隠層
2
隠層
3
出力
1
AI入門
126/284
7.ニューラルネットワーク
(8) 順伝播と誤差逆伝播
AI入門
127/284
7.ニューラルネットワーク
(9) 誤差逆伝播法(Back propagation)の理解
出力結果の精度を上げるメカニズム
理解要素 概要
データの使い方 学習に使うデータと検証データの使い方
損失関数(誤差関数)
Loss Function
出力と正解との誤差を計測する関数
勾配降下法
重みとバイアスを遡って更新する時に使
用する
最適化アルゴリズム
ネットワークを更新する際の各種最適化
アルゴリズムの理解
バッチサイズ 重みとバイアスの更新間隔
AI入門
128/284
7.ニューラルネットワーク
(10) 誤差逆伝播法: データの使い方 1
訓練データ : ネットワークの学習に使う
検証データ : 学習結果の検証に使う
テストデータ: 最終的なモデルの予測検証に使う
全体のデータ(3つに分ける)
学習・検証に使用
訓練
データ
検証
訓練
データ
検証
訓練
データ
検証
訓練
データ
検証
最終テストで使用
テスト
データ
テスト
データ
AI入門
129/284
訓練データ(training data)
検証データ(validation data)
テストデータ(testing data)
訓練データを用いて機械学習モデル自体を調整(学習)し、学習
に使用していない検証データを用いて、学習の結果を評価する。
最後に、モデルの学習が完了した時点で、学習にも検証にも使
用していないテストデータを使ってモデルの最終的な予測結果
を評価する。
テストデータはモデルの学習時には直接的にも間接的にも一切
使用しない。
7.ニューラルネットワーク
(10) 誤差逆伝播法: データの使い方 2
AI入門
130/284
7.ニューラルネットワーク
(11) 誤差逆伝播法: データの使い方(ホールドアウト法)
データ全体を学習用データとテストデータに分割し、モデル
の精度を確かめる手法。
例えばデータを、学習用データ60%、テストデータ40%に
分割する。
AI入門
131/284
7.ニューラルネットワーク
(12) 誤差逆伝播法: データの使い方(クロスバリデーション法)
Cross Validation(クロスバリデーション法)は、K-分割交差検証と
も呼ばれる。
データ全体をK個に分割し、そのうちの1つをテストデータとし、残
る K-1 個を訓練用データに分解する。その後、テストデータと学
習用データを入れ替えて繰り返し、全てのケースがテスト事例と
なるよう検証を繰り返す。(K回の検証が行われる)
AI入門
132/284
7.ニューラルネットワーク
(13) 誤差逆伝播法: データの使い方(リーブワンアウト法)
Leave One Out(リーブワンアウト法)は、一つ抜き法,ジャックナイ
フ法とも呼ばれる。
データ全体のうち1つだけをテストデータとし、その後、テストデータ
と学習用データを入れ替えて繰り返し、全てのケースがテスト事
例となるよう検証を繰り返す。
精度は高くなりやすいが時間が非常にかかる。
AI入門
133/284
7.ニューラルネットワーク
(14) 誤差逆伝播法: 損失関数 回帰
出力結果(回帰)の精度を上げるための計算を行う
損失関数が最小0に近づくようにパラメータを更新する
損失関数(回帰) 特徴
二乗誤差(最小二乗法)
差の二乗を足すシンプルさ
よく使われるが外れ値に弱い
τ−分位損失
分位点回帰に使用
正解の上に位置するのか下かで損失が変わる
のが特徴
Huber損失 ロバスト回帰に使用
ε−感度損失
サポートベクター回帰に使用
不感帯を設定する
AI入門
134/284
7.ニューラルネットワーク
(15) 誤差逆伝播法: 損失関数 分類
出力結果(分類)の精度を上げるための計算を行う
損失関数が最小0に近づくようにパラメータを更新する
損失関数(分類) 特徴
交差エントロピー誤差
誤った確率分布 q が、正しい確率分布 p と異
なるほど大きい値になる
ロジスティック損失 ロジスティック回帰で使用
指数損失
分類が失敗しているケースに非常に厳しい損
失を付与
ヒンジ損失
サポートベクターマシンで使用
一定以上離れた場合には損失を0にする
平滑化ヒンジ損失 ヒンジ損失を滑らかにしたもの
AI入門
135/284
7.ニューラルネットワーク
(16) 誤差逆伝播法: 損失関数の特性をグラフで見る
それぞれの特徴に応じて使い分ける
回 帰 分 類
AI入門
136/284
7.ニューラルネットワーク
(17) 勾配降下法の考え方 1
誤差の最小値を探索するアルゴリズムのひとつ
各点での微分(勾配)を見て、急な方向に降りていく
全体最適解
局所最適解
局所最適解にトラップされない
注意が必要
AI入門
137/284
7.ニューラルネットワーク
(17) 勾配降下法の考え方 2
全体最適解
局所最適解
夜の山岳地帯で谷底を探すようなもの
局所解にとらわれず、大域最適解にたどり着くようにする
AI入門
138/284
7.ニューラルネットワーク
(18) 勾配降下法
勾配降下法 概要
最急降下法(バッチ勾配法)
Gradient Descent
学習データのすべての誤差の合計を取ってパラ
メーターを更新する。計算コストが大きく、学習
データが増えるたびに全データで再学習が必要。
オンライン更新(新しい例を得ながらモデルを更
新)することができない。学習率の設定が重要。
確率的勾配降下法
Stochastic Gradient
Descent(SDG)
学習データをシャッフルした上でランダムに1つを
取り出して誤差を計算しパラメーターを更新する。
増えた分だけの学習データのみで再学習するため
再学習の計算量が低くなる。最急降下法よりも早
く最適解にたどり着けるが、運が悪ければいつま
で経っても適した答えを導けない。
ミニバッチ確率的勾配降下法
Minibatch SGD(MSGD)
最急降下法では時間がかかりすぎ、確率的勾配降
下法では一つ一つのデータに揺さぶられるので、
学習データの中からランダムにいくつかのデータ
を取り出して誤差を計算、パラメーターを更新す
る。このとき一回に取り出すデータの数をバッチ
サイズと呼ぶ。
AI入門
139/284
◇1.適切な学習率の選択が難しい。学習率が小さ過ぎると収束が遅くなる。大き
過ぎると収束せず、損失関数が極小値周辺で変動したり発散したりする。
◇ 2.訓練中に学習率を調整する場合、焼きなまし法(ある割合で学習率を減ら
す)や、エポック間での変動が閾値以下に落ち込んだ時に、スケジュールや閾値は、
事前に決めておかなければならない上に、データセットの特性には適応できない。
◇ 3.全てのパラメータ更新に同じ学習率を適用すると、もしデータがスカスカで、
特徴の頻度がかなり異なる場合、全てを同程度まで更新したいとは思わず、あまり
起こらない特徴のために、より大きな更新をしたいかもしれない。
◇ 4.高度に非凸な誤差関数を最小化する場合、局所解に捕らわれるのを避け
ることが重要。鞍点 (ある次元の勾配が上がる一方、別の勾配は下がる点)から問
題が発生するが、鞍点は、誤差が等しいグラフの平坦地帯に囲まれているため、
勾配が全ての次元においてゼロへ近づくにつれ、SGDはこの状況を回避することが
難しくなる。
7.ニューラルネットワーク
(19) 勾配降下法の課題 1
AI入門
140/284
7.ニューラルネットワーク
(19) 勾配降下法の課題 2
2つのパラメータをもつ損失関数が作る非凸面の例
AI入門
141/284
7.ニューラルネットワーク
(19) 勾配降下法の課題 3
鞍点・特異点で問題発生
鞍点 :
勾配0だが、少し移動すれば上昇も下降もできる
特異点:
パラメータを変更しても関数の出力が変化しない
(こっちの方がやっかい)
これらをうまく切り抜けるために様々な最適化アル
ゴリズムが考案されている
AI入門
142/284
7.ニューラルネットワーク
(19) 勾配降下法の課題 4
鞍点・特異点で問題発生
AI入門
143/284
7.ニューラルネットワーク
(20) 勾配降下法の最適化アルゴリズム 1
夜の山岳地帯で谷底を探すようなもの
効果的に、確実に大域最適解にたどり着く方法を考える
最適化アルゴリズム 特徴
確率的勾配降下法
(SDG)
学習データの中からランダムに一つのデータを選んで勾配を計算す
るため局所最適解にトラップされにくい。学習率と勾配をかけるシン
プルな計算。
欠点:学習の進行度で更新量の調整ができない。
MomentumSDG
前回の勾配と現時点での勾配を線形結合し、勾配の更新方法とす
る。(1つ前の勾配方向の影響を受けながら現在の勾配方向にも進
む)。過去の勾配ほど影響を少なくする。
AdaGrad
学習係数を自動で調整するので、便利で効率良い探査が行える。
同じ勾配方向ばかりが現れた場合、その方向に対する進みを減衰
させ、出現頻度の少ない勾配方向の成分を優先する計算を行う。
欠点:学習が進むと更新量が0になって学習が進まない。
RMSProp AdaGradの弱点を克服するため、過去の影響を適度に忘れる。
AI入門
144/284
7.ニューラルネットワーク
(20) 勾配降下法の最適化アルゴリズム 2
最適化アルゴリズム 特徴
Nesterovの加速勾配
降下法
Momentumの慣性項に対し、現在のパラメータに関する勾配計算で
はなく、未来のパラメータの推定位置を計算することで勾配更新を
調整(加速し過ぎの場合は減速)する。
Adadelta
Adagradの発展形で急速かつ単調な学習率の低下を防ぐ。学習率
の初期値設定が不要。直近の勾配情報を優先して計算する。勾配
の合計値を、過去のタイムステップ全ての勾配の二乗を減衰平均
化し、再帰的に定義するのでタイムステップ時点における移動平均
は、その時点の勾配と過去の平均にのみ依存する。
Adam
他のアルゴリズムのいいとこ取り。重みつき平均と重みつき勾配を推
定する。勾配に過去の影響の強さを反映させ、高い性能を発揮す
る。
この他に RMSpropGraves (2014)、SMORMS3 (2015)、AdaMax (2015)、Nadam
(2016)、Eve (2016)、Santa (2016)、GD by GD (2016)、AdaSecant (2017) など、
次々に提唱されている。
AI入門
145/284
7.ニューラルネットワーク
(21) バッチサイズ
学習処理のサイズを適正化するために、訓練データを複数のサブセット
に分けて学習することで学習効果を高める。
□バッチサイズ
それぞれのサブセットに含まれるデータ数
□イテレーション数
データセットに含まれるデータが少なくとも1回は学習に用いられるのに
必要な学習回数。バッチサイズが決まれば自動的に決まる。
□エポック数
バッチサイズの大きさで、訓練データをサブセットに分ける。この時、イテ
レーションの数だけ処理を行うことで、全訓練データに対して一回目の
学習処理が終わる。これを何回繰り返すかがエポック数である。
損失関数(コスト関数)の値が収束するまで何度も処理を回す。
AI入門
146/284
8.深層学習(Deep learning)
深層学習(Deep Learning)
人工知能 AI(Artificial Intelligence)
機械学習 ML(Machine Learning)
ニューラルネットワーク(Neural Network)
深層学習 DL(Deep Learning)
AI入門
147/284
8.深層学習(Deep learning)
人工知能 AI(Artificial Intelligence)
機械学習 ML(Machine Learning)
深層学習 DL(Deep Learning)
AI
強いAI (感情を持つ)
弱いAI
特化型AI(AGI)
汎用型AI(GAI)
ML
教師あり学習
回帰(Regression)
分類(Classification)
異常検出(Anomaly detection)
教師なし学習 クラスタリング、分布推定
強化学習
DL
生成モデル
CNN(Convolutional Neural Network)
RNN(Recurrent Neural Network)
AI入門
148/284
8.深層学習(Deep learning)
(1) 深層学習(Deep learning)とは
ニューラルネットワークを深く多層化したものを使っ
て学習することをディープラーニングと言う。
(何層以上という明確な規定はない)
入力
1
入力
2
入力
3
隠層
1
隠層
2
隠層
3
出力
2
隠層
1
隠層
2
隠層
3
出力
1
隠層
1
隠層
2
隠層
3
入力層 隠れ層 出力層
AI入門
149/284
8.深層学習(Deep learning)
(2) 層を増やすと何がいいのか? 1
ニューラルネットワークを深く多層化すると、表現で
きる関数が増える。
→ 複雑な問題にも適合可能となる
AI入門
150/284
8.深層学習(Deep learning)
(2) 層を増やすと何がいいのか? 2
線形関数だけでなく、複雑な非線形関数も近似で
きるようになる → 適合度が高くなる
AI入門
151/284
8.深層学習(Deep learning)
(3) 機械学習と深層学習の違い 1
◇一番違うのは「特徴量」の見つけ方。
機械学習: 特徴量を人が見つけて指定する
深層学習: 大量のデータからAIが自分で見つける
AI入門
152/284
8.深層学習(Deep learning)
(3) 機械学習と深層学習の違い 2
Deep learningは特徴抽出などを自動で行う
AI入門
153/284
ILSVRC(画像認識の国際競技会)での圧勝
2012年の大会で、トロント大学のHinton教授のチー
ムがDeep Learningを使って圧勝した。
どれくらいすごい?
それまでは、0.数パーセントの精度向上を競っていたが、ヒントン教授
のチームは、いきなり100倍以上の性能向上(十数%)
2位以下をぶっちぎってダントツトップで優勝した。
【おまけ】 Deep Learingは2015年の大会から人間の認識能力を超えた。
ヒントン教授が立ち上げたベンチャーはGoogleが買収した。
8.深層学習(Deep learning)
(4) 注目されるきっかけ
AI入門
154/284
8.深層学習(Deep learning)
(5) さまざまなニューラルネットワーク 1
AI入門
155/284
8.深層学習(Deep learning)
(5) さまざまなニューラルネットワーク 1
AI入門
156/284
今回は、代表的な
CNN: 畳み込みネットワーク(Convolutional Neural Network)
RNN: 再帰型ニューラルネットワーク(Recurrent Neural Network)
生成モデル:オートエンコーダ(自己符号化器)やGANなど
を紹介します。
【CNN】
• 画像に含まれる物、場所、人などを検知しラベル付けする。
• 人の音声をテキストに変換する。自然な音や音声を合成する。
• 画像やビデオに自然言語で注釈を付ける。
• 自動運転車で道路を把握したり周囲の障害物を避ける。
• 自動プレイの為テレビゲームの画面解析を行う。
• 画像、音、テキストなどを自動生成するモデルで使われる
8.深層学習(Deep learning)
(5) さまざまなニューラルネットワーク 3
AI入門
157/284
8.深層学習(Deep learning)
(6) CNN: 畳み込みネットワーク(Convolutional Neural Network)
◇「畳み込み層」「プーリング層」「全結合層」を積層した構造を持つ
(ヒントン教授が画像認識で使ったのがこのCNN)
AI入門
158/284
8.深層学習(Deep learning)
◇フィルターを使った畳み込み層で入力データの特徴を抽出する
画像認識やテキスト、信号処理で高い性能を発揮する。
誤差逆伝播法
(6) CNN: 畳み込みネットワーク(Convolutional Neural Network)
AI入門
159/284
8.深層学習(Deep learning)
(7) CNN: 畳み込み層 1
◇「フィルター」を使って入力データの特徴を抽出する
データ フィルター 出力
AI入門
160/284
8.深層学習(Deep learning)
(7) CNN: 畳み込み層 2
◇「フィルター」を使って入力データの特徴を抽出する
1 0 1
0 1 0
1 0 1
X
Filter
AI入門
161/284
8.深層学習(Deep learning)
(7) CNN: 畳み込み層 3
◇「フィルター」を使って入力データの特徴を抽出する例
MNISTの手書き数字の上に1層の畳み込み層があり、8個のフィルター
でそれぞれに対応した8つの特徴マップを得ている。
AI入門
162/284
8.深層学習(Deep learning)
(8) CNN: プーリング層
◇特徴量が持つ情報を圧縮し、位置ずれに対して堅牢にする
情報を領域に区切り、各領域の代表値を抽出する(最大・平均など)
この処理でデータが圧縮される(ダウンサンプリング)
AI入門
163/284
8.深層学習(Deep learning)
(9) CNN: 全結合層
◇畳込み層とプーリング層で特徴量を取り出し、全結合層で分類する
AI入門
164/284
8.深層学習(Deep learning)
(10) CNN: 画像の処理イメージ 1
◇畳込み層とプーリング層で特徴量を取り出し、全結合層で分類する
AI入門
165/284
8.深層学習(Deep learning)
(10) CNN: 画像の処理イメージ 2
◇畳込み層とプーリング層を積み重ねることで、層を経るごとにより高次
の特徴を獲得する
AI入門
166/284
8.深層学習(Deep learning)
(11) CNN: 設定するパラメータ 1
◇CNNの学習で必要なパラメータ(ネットワークの構成)
AI入門
167/284
8.深層学習(Deep learning)
(11) CNN: 設定するパラメータ 2
◇CNNの学習で必要なパラメータ(学習のパラメータ)
AI入門
168/284
8.深層学習(Deep learning)
(11) CNN: 設定するパラメータ 3
◇CNNの学習で必要なパラメータ
AI入門
169/284
8.深層学習(Deep learning)
(12) CNN: 関連技術が次々に・・・
次々に新しい関連技術が開発・発表されている
4つほど紹介して、あとは省略(;^ω^)
R-CNN
Fast R-CNN
Faster R-CNN
YOLO
SSD
Mask R-CNN
FCN
SegNet
CNN+CRF
Deep Mask
Deep Face
Spatial Transformer Networks
Deep Dream
モーフィング
画風変換
Super-Resolution CNN
Deblurring
Automatic Colorization CNN
Deep Stereo
Adversarial Example
WaveNet
MemNet
画像キャプション生成
Visual Turing Test
画像と単語のクロスモーダル分散表現
Asynchronous DQN
AI入門
170/284
8.深層学習(Deep learning)
(13) CNN: YOLO(You Look Only Onse)
物体検出を行うが、分類ではなく回帰としてモデル化
処理がひとつのネットワークのみで完結している
リアルタイム処理が可能
AI入門
171/284
8.深層学習(Deep learning)
(14) CNN: Mask R-CNN などなど
物体検出をバウンディングボックスの範囲ではなく、ピクセル単位で行う
(セマンテックセグメンテーション)
他にも、FCN、SegNet、Dilated畳み込み、DeepLab (v1 & v2)、
RefineNet、PSPNet、Large Kernel Matters、DeepLab v3などが提唱さ
れている
AI入門
172/284
8.深層学習(Deep learning)
(15) CNN: WaveNet(音声技術)
◇畳み込み層で音声を取り扱う技術のひとつ
スマートスピーカーにも使われている
AI入門
173/284
8.深層学習(Deep learning)
(16) CNN: Adversarial Example
□ AIをだます
分類器が正しく分類できていた画像に、ノイズ(計算された摂動)を付加
することで分類器の判断を誤らせる
分類器が「パンダ」と判定した画像に、計算された摂動(ノイズ)を付与
すると、AIは「テナガザル」と判断してしまう例
AI入門
174/284
8.深層学習(Deep learning)
(17) RNN: 再帰型ニューラルネットワーク 1
◇RNN: Recurrent Neural Network
再帰構造を持ち、時系列データを効率よく処理できるように設計
音声や文書、動画などの時間変化するデータ処理に強い
RNNは中間層が再帰型
中間層の出力が、次の入力と共に中間層の入力となる
AI入門
175/284
8.深層学習(Deep learning)
(17) RNN: 再帰型ニューラルネットワーク 2
◇RNN: Recurrent Neural Network
ニューラルネットワークが中間層に前の時刻の情報を保持するので、
過去の情報を用いて判断を行うことができる
前後関係がある文章、時間経過がある音声や動画の処理が得意
AI入門
176/284
8.深層学習(Deep learning)
(18) RNN: 課題
◇時系列で深いネットワーク構造を持つので、誤差逆伝播の勾配が喪
失(または発散)しがちになる。
このため、短期の記憶は保持できるが、長期の記憶保持が苦手。
以下のような文書を解析する場合、冒頭に出てきた「中国」という単語
が最終予測に重要だが、RNNだと保持しにくい。(長期依存性に弱い)
「中国を旅行し、いくつかの都市を訪問し、さまざまな人たちと出会い、
多くの貴重な体験をしたが、もっとも印象深かった街は●である。」
このため、長期依存性のあるネットワーク構造が提唱されている
(次に紹介するLSTM、GRUなど)
AI入門
177/284
8.深層学習(Deep learning)
(19) RNN: LSTM(Long Short-Term Memory)
◇隠れベクトルとは別にメモリベクトルで過去情報を保持する。
「ゲートベクトル」で過去情報を管理する。
AI入門
178/284
8.深層学習(Deep learning)
(20) RNN: こんなことができる
◇自然言語処理でAIが文章を生成する。
(日本語の場合は、分かち書きをしないので前処理に形態素解析を行う)
■第三回星新一賞応募作品 「コンピュータが小説を書く日」 有嶺雷太
その日は、雲が低く垂れ込めた、どんよりとした日だった。
部屋の中は、いつものように最適な温度と湿度。
洋子さんは、だらしない格好でカウチに 座り、くだらないゲームで時間を潰している。
でも、私には話しかけてこない。
ヒマだ。ヒマでヒマでしょうがない。
この部屋に来た当初は、洋子さんは何かにつけ私に話しかけてきた。
「今日の晩御飯、何がいいと思う?」
「今シーズンのはやりの服は?」
「今度の女子会、何を着ていったらいい?」
私は、能力を目一杯使って、彼女の気に入りそうな答えをひねり出した。
スタイルがいい とはいえない彼女への服装指南は、とてもチャレンジングな課題で、充実感があった。
しか し、3か月もしないうちに、彼女は私に飽きた。
<以下省略>
AI入門
179/284
冒頭に紹介した、AIがつくった偽画像やフェイク動画は、この
モデルを使って作られている。
代表的な生成モデルである、オートエンコーダー、VAEとGAN
を紹介。
8.深層学習(Deep learning)
(21) 生成モデル
訓練データを学習し、それらのデータと似たような新しい
データを生成するモデル。
別の言い方をすると、訓練データの分布と生成データの分
布が一致するように学習していくようなモデル。
AI入門
180/284
8.深層学習(Deep learning)
(22) 生成モデル: オートエンコーダ(自己符号化器)
入力と出力を同じにする半教師あり学習で対象の特徴表現を自己学習
するが、オートエンコーダの核は次元削減。
以前はニューラルネットワークの事前学習にも使われていたが、最近は
生成モデルにも使われる
AI入門
181/284
8.深層学習(Deep learning)
(23) 生成モデル: VAE(Variational AutoEncoder)
VAE(変分自己符号化器)は学習による近似推論を用い, 勾配に基づく
方法で訓練できる変分ベイズ推定法の一種。
AEのように入力を固定した潜在
空間に圧縮するのではなく, 符号
化器の潜在変数を生成する確
率分布のパラメータに変換する。
AI入門
182/284
8.深層学習(Deep learning)
(24) 生成モデル: GAN (Generative Adversarial Networks)
GAN(敵性的生成ネットワーク)は、Generator(生成器)とDiscriminator(判別器)
の2つネットワークの学習によって、ノイズから画像を生成するアルゴリズム
生成器Gは、判別器Dに本物と誤認識させるような画像を生成し、判別器Dは、
本物か偽物かを見分ける役割がある。
お互いが切磋琢磨して学習すると、本物と見分けがつかないような画像も生成
できる。
DCGANのモデル
AI入門
183/284
8.深層学習(Deep learning)
(25) 生成モデル: GAN (DCGAN)
GANの2つのネットワークにDeep Learningを使ったのがDCGAN
サングラスの男 ー 男 + 女 = サングラスの女 という演算もできる
AI入門
184/284
8.深層学習(Deep learning)
(26) 生成モデル: GAN (SRGAN)
◇GANを使うと、ぼやけた画像をシャープにすることも可能
低解像度画像を縦横4倍ずつの高解像度にした例
AI入門
185/284
8.深層学習(Deep learning)
(27) 生成モデル: アップサンプリング
低解像度を高解像度にしている仕組み
①相対的に拡大: 相対的(相似)に拡大し、隙間はゼロパディング
②隙間を中間色で埋める: 隣にある情報の中間色で隙間を埋める
③特徴を比較: CNNと同じようにフィルタ(特徴)を比較して画像を変換
AI入門
186/284
名称 概要
GAN ベースのシンプルなGAN
DCGAN GANの2つのネットワークにCNNを用いることにより、学習の精度
が上がり高解像度の画像を生成
Pix2pix 一対一に対応してそうな画像間を変換するGAN
pix2pixHD 2048×1024の高解像な画像を生成
CycleGAN 二つの画像を変換するように学習したGAN
StarGAN CycleGANの複数対応版
DCGAN シンプルに画像を生成するGAN
PGGAN 1024×1024の高解像な画像を生成
ACGAN DCGANより綺麗な画像生成を実現
SAGAN 指定したクラスの画像生成で最も高画質な生成を実現
8.深層学習(Deep learning)
(28) 生成モデル: GAN さまざまな派生 1
◇注目される技術なので、さまざまな派生版が提唱されている
AI入門
187/284
名称 概要
SNGAN 正則化を損失関数に加えてより学習の精度あげる
ConditionalGAN 生成して欲しい画像のラベルも入力に与えることで指定した画像
を生成できる
InfoGAN 相互情報量を評価関数に導入し、可能な限り画像の何らかの
特徴と意味の取れた関係を持つように学習する
StackGAN 高精度に文章から画像を生成できる
AnoGAN 画像の異常検出を試みる
WGAN 学習の方法を工夫する提案
WGAN-gp 評価関数にペナルティ項を加え、よりよいWGANの学習を提案
3DGAN 画像ではなく3次元のボクセルを生成
CartoonGAN アニメ調に特化させているGAN
8.深層学習(Deep learning)
(28) 生成モデル: GAN さまざまな派生 2
◇注目される技術なので、さまざまな派生版が提唱されている
AI入門
188/284
8.深層学習(Deep learning)
(29) 転移学習とは
ある領域(ドメイン)で学習したモデルを別の領域(ドメイン)に使って、
普通に学習させるよりも少ないデータで追加学習させる手法。
既存モデルが学習した結果(重み付け)を転用し、チューニング済の各
ノード間の重み付けを再利用する。
・少ないデータで高い精度を実現できる
・計算量が少ない
AI入門
189/284
◇ ファインチューニング
転移学習では、学習済みモデルの重みを固定して使うが、ファインチューニング
では学習済みモデルの重みを初期値とし、再度学習によって微調整する。
シミューレーション環境から実環境へ移行する際や、標準化されたモデルを
個々のユーザに最適化する時などに使用される。
◇ ドメイン適応
あるデータで学習したモデルを異なる分布のデータの学習に利用する手法。
ドメイン適応では、低次元の特徴の組み合わせ方を共有し、その低次元の特徴
の表現を再学習することで異なる分布のデータの学習を行う。
タスクは同じでも入力データの分布が異なる場合、入力層に近い層を再学習す
ることによって対応することが可能になる。
8.深層学習(Deep learning)
(30) 転移学習: ファインチューニングとドメイン適応
AI入門
190/284
8.深層学習(Deep learning)
(31) ディープラーニング(深層学習)の問題点
◇高い性能を出す深層学習にも問題がある
問題点 概要
局所最適解へのトラップ
最適ではないところを最適解と勘違いしてしまい、性能が
上がらない。
過学習(過剰適合) 学習データに過剰に適合して本番に弱くなる。(ガリ勉)
勾配消失
誤差逆伝播法(Backpropagation)で入力層に遡る時、
勾配が0あるいは爆発して学習が進まなくなる。
次元の呪い
扱う特徴量(次元)が多すぎて、学習モデルが効率よく回
帰や分類ができなくなる。
学習時間増大
大量のデータと複雑な計算により、膨大な処理時間がか
かってしまう。
AI入門
191/284
8.深層学習(Deep learning)
(32) 問題: 局所最適解へのトラップ
降下勾配法では、損失関数の微分(勾配)が0の地
点を探すが、局所解に囚われないようにする
全体最適解
局所最適解
局所最適解にトラップされない
注意が必要
AI入門
192/284
8.深層学習(Deep learning)
(33) 問題: 過学習(過剰適合) Overfitting
学習データに(ノイズも含めて)過度に適合してしまい、訓練データに対
しての誤差は小さいが、未知のデータに対する判断が低下した状態
モデルの表現力・特徴量の次元の大きさと比較して、学習データが少な
い場合に陥りやすい
青が過学習の状態
AI入門
193/284
8.深層学習(Deep learning)
(34) 問題: 勾配消失
多層化すると、誤差逆伝播の際に入力層に近づくに
従って勾配が消失し、学習が停滞する。
AI入門
194/284
8.深層学習(Deep learning)
(35) 問題: 次元の呪い(球面集中現象)
扱う特徴量(次元)が多すぎて、学習モデルが効率
よく学習できなくなる。
AI入門
195/284
8.深層学習(Deep learning)
(36) 問題: 学習時間増大
膨大なデータを扱うことや、アルゴリズムによる複雑
な計算、最適化されていない処理で学習が進まな
いなど、処理に膨大な時間がかかってしまう。
学習時に、入力データに対し、バックワードプロパゲーションを行い計算
の重み付けを更新し、精度を上げていく。
1件あたりの時間は大したことがなくても、データが膨大になれば相応の
時間が必要になる。
NVIDIAのGUP「Titan X」を2枚搭載したマシンで300MBの画像を
AlexNetで学習させても丸1日かかる。
私のパソコンで計算すると一ヶ月でも終わらない。
Googleの猫は、1000台のサーバー(16000コア)で3日間学習した。
AI入門
196/284
8.深層学習(Deep learning)
(37) 問題解決へのアプローチ
◇改善へのアプローチを概観する
改善策 概要
最適化アルゴリズムの変更
SDGやAdamなど、対象に応じて効果的なアルゴリズム
を選択する。
バッチサイズの適正化 重みとバイアスを更新する間隔を適切に設定する
ハイパーパラメータの最適化
ネットワークの層数、ニューロンの数、学習率などを適切
に設定する
正則化(Regularization)
重みに制限を加えることで、局所解にトラップされること
を防ぐ
重みとバイアスの初期値調整 ランダムに設定しておき、表現を多様化する。
早期終了(Early stopping) 過学習と停滞を防ぐため処理を途中で終わる。
ドロップアウト(Dropout)
途中のニューロンを一定の確率でランダムに消去して
ネットワーク規模を下げて過学習を防止する。
データ拡張(Data Augmentation) データに何らかの加工を施し、データを水増しする。
データの前処理 正規化、標準化、無相関化、白色化などの処理
AI入門
197/284
8.深層学習(Deep learning)
(38) 対策: 最適化アルゴリズムの選択 1
◇【再掲】勾配降下法のアルゴリズム
状況に応じて最適なものを使う
最適化アルゴリズム 特徴
確率的勾配降下法
(SDG)
学習データの中からランダムに一つのデータを選んで勾配を計算す
るため局所最適解にトラップされにくい。学習率と勾配をかけるシン
プルな計算。
欠点:学習の進行度で更新量の調整ができない。
MomentumSDG
前回の勾配と現時点での勾配を線形結合し、勾配の更新方法とす
る。(1つ前の勾配方向の影響を受けながら現在の勾配方向にも進
む)。過去の勾配ほど影響を少なくする。
AdaGrad
学習係数を自動で調整するので、便利で効率良い探査が行える。
同じ勾配方向ばかりが現れた場合、その方向に対する進みを減衰
させ、出現頻度の少ない勾配方向の成分を優先する計算を行う。
欠点:学習が進むと更新量が0になって学習が進まない。
RMSProp AdaGradの弱点を克服するため、過去の影響を適度に忘れる。
AI入門
198/284
8.深層学習(Deep learning)
(38) 対策: 最適化アルゴリズムの選択 2
◇【再掲】勾配降下法のアルゴリズム
状況に応じて最適なものを使う
最適化アルゴリズム 特徴
Nesterovの加速勾配
降下法
Momentumの慣性項に対し、現在のパラメータに関する勾配計算で
はなく、未来のパラメータの推定位置を計算することで勾配更新を
調整(加速し過ぎの場合は減速)する。
Adadelta
Adagradの発展形で急速かつ単調な学習率の低下を防ぐ。学習率
の初期値設定が不要。直近の勾配情報を優先して計算する。勾配
の合計値を、過去のタイムステップ全ての勾配の二乗を減衰平均
化し、再帰的に定義するのでタイムステップ時点における移動平均
は、その時点の勾配と過去の平均にのみ依存する。
Adam
他のアルゴリズムのいいとこ取り。重みつき平均と重みつき勾配を推
定する。勾配に過去の影響の強さを反映させ、高い性能を発揮す
る。
この他に RMSpropGraves (2014)、SMORMS3 (2015)、AdaMax (2015)、Nadam (2016)、
Eve (2016)、Santa (2016)、GD by GD (2016)、AdaSecant (2017) など、次々に提唱され
ている。
AI入門
199/284
8.深層学習(Deep learning)
(39) 対策: バッチサイズの適正化
◇処理速度を考えるとバッチサイズは大きい方がいいが、性能的
にはミニバッチのサイズは小さい方がいい。
・テストデータに対する性能が良くなる
・発散しない学習率の幅が広くなる
AI入門
200/284
8.深層学習(Deep learning)
(40) 対策: ハイパーパラメータ
◇設定値で結果に大きな差が出る最大の関門
AI入門
201/284
8.深層学習(Deep learning)
(41) 対策: ハイパーパラメータの最適化 1
◇パラメータ調整法のいろいろ
調整法 概要
ランダム・サーチ
RandomizedSearchCV
ランダムにパラメータを試していく
グリッド・サーチ
GridSearchCV
パラメータの候補値を指定して、その組み合わせを全て試す
ラテン超方格サンプリン
グ法
LHS
層別サンプリング法のひとつで、各変数をn個に分割して、ランダム
に値を取り出して試す
ベイズ最適化
Bayesian Optimization
パラメータに対する評価関数の分布がガウス過程に従うと仮定し、
パラメータ値を試していくことで実際の分布を探索してより良いパラ
メータ値を得る
遺伝アルゴリズム
Genetic Algorithm
N個のランダムなパラメータの組み合わせ(遺伝個体)を作り、その
評価関数を得て、2つの遺伝個体間で交叉と突然変異を行うこと
でより良いパラメータを得る
SMBO
TPE
パラメータに対する評価関数を予測する関数を使い、パラメータの
変化でモデルがどのくらい改善されるかを予測して探索する
AI入門
202/284
8.深層学習(Deep learning)
(41) 対策: ハイパーパラメータの最適化 2
◇ベイズ最適化
・ブラックボックス関数の最適点を効率よく探索できる
・ガウス過程を用いて目的関数を表現する
・獲得関数が最大となる点を次の観測点に選ぶ
AI入門
203/284
8.深層学習(Deep learning)
(42) 対策: 正則化(Regularization) 1
過学習の防止のため、モデルを学習する際に複雑さが増すことに対す
るペナルティを設け、このペナルティを訓練誤差に加えた量が最も小さ
くなる学習モデルを求めるようにすることにより汎化性能を高める。
■L1正則化(L1ノルム) LASSO
ペナルティとして学習モデルのパラメータの絶対値の総和を用いる
特定のデータの重みを0にする事で、不要なデータを削除する
パラメータの一部を完全に0にするため、モデルの推定と変数選択を同時に行う
■L2正則化(L2ノルム) Ridge
ペナルティとして学習モデルのパラメータの二乗の総和を用いる
データの大きさに応じて0に近づけて、滑らかなモデルとする
両方ともモデルの次元が低い方がペナルティが小さくなる。
(例外データに対応しようとして次元が増えるのを抑制する効果あり)
L1ノルムとL2ノルムを線形結合したElastic Netというモデルも提案されている。
AI入門
204/284
8.深層学習(Deep learning)
(42) 対策: 正則化(Regularization) 2
重み付けベクトルの空間上に学習データに対する誤差項の広がりを配置しこれを動かす
ことで誤差を最小化させるが、そこにペナルティ項を付けておくことでw1,w2の定まり方が
変わる。
L1ノルム正則化: 尖った形の領域に接するようにしなければならないため自ずとw2の軸
上に最適点が定まってw1=0となる。「w2だけに値が入りw1はゼロになる」というような、い
わゆるスパース(疎)な解を得やすい。「不要なパラメータを削りたい」(次元・特徴量削
減)という時によく使われる。
L2ノルム正則化: 円状の領域に接するようにしなければならないためw1,w2ともにnon-
zeroな値が入る。過学習を抑えて汎化された滑らかなモデルを得やすい。
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門
数式もコードも使わないAI(人工知能)入門

More Related Content

More from 地球人

Code for Kumamoto 11月17日 249SON IoT話題提供
Code for Kumamoto 11月17日 249SON IoT話題提供Code for Kumamoto 11月17日 249SON IoT話題提供
Code for Kumamoto 11月17日 249SON IoT話題提供
地球人
 
目指そうハイブリッド型人材(最強人材への道)
目指そうハイブリッド型人材(最強人材への道)目指そうハイブリッド型人材(最強人材への道)
目指そうハイブリッド型人材(最強人材への道)
地球人
 
Python開発環境構築ハンズオンセミナー
Python開発環境構築ハンズオンセミナーPython開発環境構築ハンズオンセミナー
Python開発環境構築ハンズオンセミナー
地球人
 
LPWA基礎の基礎
LPWA基礎の基礎LPWA基礎の基礎
LPWA基礎の基礎
地球人
 
7月9日 B2Bマーケティングセミナーの駐車場案内
7月9日 B2Bマーケティングセミナーの駐車場案内7月9日 B2Bマーケティングセミナーの駐車場案内
7月9日 B2Bマーケティングセミナーの駐車場案内
地球人
 
KISオープンセミナー:ブロックチェーンの基盤技術と最新動向 久保氏資料
KISオープンセミナー:ブロックチェーンの基盤技術と最新動向 久保氏資料KISオープンセミナー:ブロックチェーンの基盤技術と最新動向 久保氏資料
KISオープンセミナー:ブロックチェーンの基盤技術と最新動向 久保氏資料
地球人
 
八代で化石採集しよう!恐竜の化石も見つかったよ。
八代で化石採集しよう!恐竜の化石も見つかったよ。八代で化石採集しよう!恐竜の化石も見つかったよ。
八代で化石採集しよう!恐竜の化石も見つかったよ。
地球人
 
enPiT-everi受講のススメ
enPiT-everi受講のススメenPiT-everi受講のススメ
enPiT-everi受講のススメ
地球人
 
国はどのようにウソをつくのか?
国はどのようにウソをつくのか?国はどのようにウソをつくのか?
国はどのようにウソをつくのか?
地球人
 

More from 地球人 (9)

Code for Kumamoto 11月17日 249SON IoT話題提供
Code for Kumamoto 11月17日 249SON IoT話題提供Code for Kumamoto 11月17日 249SON IoT話題提供
Code for Kumamoto 11月17日 249SON IoT話題提供
 
目指そうハイブリッド型人材(最強人材への道)
目指そうハイブリッド型人材(最強人材への道)目指そうハイブリッド型人材(最強人材への道)
目指そうハイブリッド型人材(最強人材への道)
 
Python開発環境構築ハンズオンセミナー
Python開発環境構築ハンズオンセミナーPython開発環境構築ハンズオンセミナー
Python開発環境構築ハンズオンセミナー
 
LPWA基礎の基礎
LPWA基礎の基礎LPWA基礎の基礎
LPWA基礎の基礎
 
7月9日 B2Bマーケティングセミナーの駐車場案内
7月9日 B2Bマーケティングセミナーの駐車場案内7月9日 B2Bマーケティングセミナーの駐車場案内
7月9日 B2Bマーケティングセミナーの駐車場案内
 
KISオープンセミナー:ブロックチェーンの基盤技術と最新動向 久保氏資料
KISオープンセミナー:ブロックチェーンの基盤技術と最新動向 久保氏資料KISオープンセミナー:ブロックチェーンの基盤技術と最新動向 久保氏資料
KISオープンセミナー:ブロックチェーンの基盤技術と最新動向 久保氏資料
 
八代で化石採集しよう!恐竜の化石も見つかったよ。
八代で化石採集しよう!恐竜の化石も見つかったよ。八代で化石採集しよう!恐竜の化石も見つかったよ。
八代で化石採集しよう!恐竜の化石も見つかったよ。
 
enPiT-everi受講のススメ
enPiT-everi受講のススメenPiT-everi受講のススメ
enPiT-everi受講のススメ
 
国はどのようにウソをつくのか?
国はどのようにウソをつくのか?国はどのようにウソをつくのか?
国はどのようにウソをつくのか?
 

数式もコードも使わないAI(人工知能)入門