Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
最新AI技術「カプセルネットワーク」「転移学習」「QRNN」をKerasでサクっと実装する
Search
piacerex
June 30, 2018
Technology
1
4.4k
最新AI技術「カプセルネットワーク」「転移学習」「QRNN」をKerasでサクっと実装する
3つの最新AI技術「カプセルネットワーク」「転移学習」「QRNN」について、概要の解説を行い、Kerasで実装してみました
piacerex
June 30, 2018
Tweet
Share
More Decks by piacerex
See All by piacerex
fukuoka.ex/kokura.exとElixirって何ソレ美味しいの?つまみ食い
piacerex
0
14
PMMとは? … モダンなSaaSプロダクトに必須な役割(「プロマネチョットデキル#5」より)
piacerex
0
76
とうとう実践配備された ElixirDesktopにようこそ!!
piacerex
0
1.4k
7年間続け、トップランカー入りしたElixirにようこそ!!
piacerex
0
140
デジタルツインと生成AIが繋がった世界を構築する
piacerex
0
95
ちゃんと血の通ったPM/リーダーをするには?
piacerex
0
210
最近トレンドの生成AIを使いこなす【from 高知AIセミナー 技術者養成講座】
piacerex
1
110
本当のDXはSF的で未来志向、そしてサイバーパンク【from 総務省 ICT技術セミナー「自分ごとにするDX」】
piacerex
0
140
AIの基本から最近トレンドAI手法まで【from 高知AIセミナー 技術者養成講座】
piacerex
0
82
Other Decks in Technology
See All in Technology
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
9
1k
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
13k
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
信頼性に挑む中で拡張できる・得られる1人のスキルセットとは?
ken5scal
2
540
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
610
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
360
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
組織成長を加速させるオンボーディングの取り組み
sudoakiy
2
170
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
480
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
840
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
170
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
96
Navigating Team Friction
lara
183
14k
Embracing the Ebb and Flow
colly
84
4.5k
Optimizing for Happiness
mojombo
376
70k
RailsConf 2023
tenderlove
29
900
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
How GitHub (no longer) Works
holman
310
140k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Music & Morning Musume
bryan
46
6.2k
Transcript
2018/06/30(Sat) PyCon Kyushu 2018 最新AI技術「カプセルネットワーク」 「転移学習」「QRNN」を Kerasでサクっと実装する 2018/06/26 ver0.5作成 2018/06/30
ver0.9作成
1 プログラマ歴36年 / XPer歴18年 / 福岡 技術顧問 (3社) AIジョブカレ 福岡代表
/ enPiT (文科省 社会人IT育成) 講師 IT企業2社経営 。 森 正和 |> 。 Elixirコミュニティ「fukuoka.ex」 福岡 理学部 / IAI Fukuoka / 「通常の3倍」福岡 主催 「量子コンピュータ by Blueqat」 / 「OpenQL」 福岡代表 福岡Elixirプログラマ / 重力プログラマ my favotite technology & implements. Twitter/Qiita/Github @piacere_ex
35年間、プログラマ続けてて、「重力プログラマ」がコア 先日、UnityでGPU使った天体シミュレータ開発着手
最近、「はやぶさ2」開発者の村田博士と仲良くなった
4 2018/3/16 福岡 理学部 四限目 「重力と宇宙を愛する全ての人に」
福岡宇宙ベンチャーQPS研究所、大西社長参戦!
静岡県から、天体研究しているJKもキターッ!
国内No.1 AIスクールの福岡代表&講師やっています AI権威の松尾研出身で「詳解ディープラーニング」著者、 巣籠さん監修のAI学校を現役のエンジニアが講義中 https://www.aijobcolle.com/
「福岡 理学部」は、数学・物理が苦手でも楽しめます LINE Fukuoka、Fusic、 ベガ・コーポレーション、TechJIN といった、福岡の数学・物理に 強いエンジニアが、仕事に関係 有る無しにこだわらず、好きな 分野で好き勝手にLTしまくるw 科学なら何でもOKという集まり
(宇宙も扱います) https://fukuoka-science.connpass.com/event/75947/
ジョブスみたいに1円から、技術顧問のご相談どうぞ 「幸せなトップエンジニア」を揃えたい企業向け、PJ推進 支援、技術者評価基準策定、Elixir導入・運用支援 他にも、以下福岡の代表企業をゲリラ的支援しています カラビナテクノロジー株式会社 地元の中小企業のIT化から、 大規模流通SI開発まで手広く カバーする、福岡ITの急先鋒 有限会社デライトシステムズ 販売管理の自社パッケージ提供と
AWS/GCPの高性能Web システム開発に定評がある 株式会社Fusic 顧客とのコミュニケーションを重視し、 堅実なシステム開発を手掛ける 福岡を代表するIT企業
10 2018/6/22 福岡Elixirコミュニティ fukuoka.ex MeetUp #11 ~ DB/データサイエンスにコネクトするElixir ~
福岡Elixirコミュニティ「fukuoka.ex」とは? 2017年6月発足 先週fukuoka.ex#11で1周年
1年で、福岡で関数型言語「Elixir」、だいぶ広めました 1年間、隔月(偶数月)MeetUp+毎月もくもく会 国内・海外含め、fukuoka.exでしか手に入らない 情報やノウハウ、研究成果が毎回、満載 ナント、スポンサー付きましたw 企業でも無いコミュニティに スポンサー付く時代なんですね 福岡でElixir採用企業、増殖中 今年度、20社採用、目指します
「実際に動くコード」でライブデモしたり、もくもくしたり… 地味に女子率、高し(^o^)
MeetUpは、2ヶ月に1回の隔月開催 (偶数月の末) 告知から数時間で満席 次回#14は8末 前回MeetUpは、 福岡でのElixir プロダクション採用 事例を紹介 国内・海外含め、 fukuoka.exでしか
得られない尖り具合 https://techjin.connpass.com/event/79311/
もくもく会は、毎月開催しています 仕事終わりにほろ酔い、くつろぎつつ、Elixir/Phoenix でプログラミングを嗜んでみませんか?
最近、8週連続Qiitaトップ獲得 & キラーOSSリリース fukuoka.ex、取材受けます(インタビュー掲載) 福岡でのElixir 大型案件始動 福岡でブームに&Elixirを求めて移住してくる第1号が確定w 高島市長と会見 感謝状…届くか? 福岡でのElixirプロダクション
採用事例が100件突破 季節外れのAdvent Calendarで Qiita Elixirカテゴリを4~6月 ジャック (新人や転職組を狙う) Elixir Advent Calendarの 本家を福岡勢で完全制圧する 高島市長を 登壇に呼ぶ 野心を振り返る 忘年会バージョン fukuoka.ex 世界へ打って出る Elixir移住者 インタビュー ZEAM α版リリース? (Elixir Conf間に合うかな?) fukuoka.exによる Elixir本を出版 &出版記念パーティ 世界レベルのElixir オープンソースをリリース fukuoka.exを50人規模 で開催 in GMOペパボ 福岡でElixir conf級 のイベントを開催する fukuoka.exを100人 規模で開催 @ LINE Elixirで洗練されたモダン UIのキラーOSSをリリース Udemy Elixir 講座リリース fukuoka.ex、2回目の取材 来年の展望・野望を語る
fukoka.exアドバイザーズがインタビュー受けました 全3回、夏頃に全国パブリックメディアでの第2段も決定 http://dame.engineer/archives/391#post-391
18 本編ここから
19 1. AIの歴史とディープラーニング 2. 現在、主流のディープラーニング手法 3. 「カプセルネットワーク」とは? 4. カプセルネットワークを実装する 5.
「転移学習」とは? 6. 転移学習を実装する 7. 「QRNN」とは? 8. QRNNを実装する 9. 最新AI技術のまとめ 目次
20 1.AIの歴史とディープラーニング の第1回 、第3回 から再掲
21 AI研究・開発は、デジタルコンピュータの登場とほぼ同じ位、長い 歴史をもっています これまで、2度の「AI冬の時期」があり、現在は、第3次ブームの 真っ最中です 1.AIの歴史とディープラーニング ? の第1回 から再掲
22 AI研究・開発は、デジタルコンピュータの登場とほぼ同じ位、長い 歴史をもっています これまで、2度の「AI冬の時期」があり、現在は、第3次ブームの 真っ最中です 1.AIの歴史とディープラーニング ? 2度目の「AIの冬」に、大学で ニューラルネットワークとマイクロ カーネルOSの研究・開発を
並行して行っていました パソコンを始めて触ったのは、 小学校4年生の頃でした 大学の頃に触れた各種技術が、 ディープラーニングやビッグデータ分析、 Elixir+Pythonデータサイエンス、 宇宙データ分析等、福岡で行って いる様々な活動へと繋がっています の第1回 から再掲
23 1.AIの歴史とディープラーニング 当初、期待されていた、「人間のように自律的に思考するAI」は、 今もまだ実現できていませんが、各ブームでの副次的な成果は、 様々なコンピューティングや生活に影響を及ぼしています 以下のうち、AIブームで生み出されたものは、どれでしょう? ◼ 自然言語処理 ◼ 機械翻訳
◼ 音声認識 ◼ オブジェクト指向プログラミング ◼ 関数型プログラミング ◼ リレーショナルDB ◼ インターネット(TCP/IP) ◼ 証券市場(電子取引) の第1回 から再掲
24 1.AIの歴史とディープラーニング 第3次AIブームの立役者は、「ディープラーニング」です 一言で言えば、「期待する値に限りなく近い値を回答できるよう、 膨大なパターンをマシンに分類してもらう」というアルゴリズムです ディープラーニングが革新的なのは、「データが持つ特徴を、人手 を介在させずとも自動抽出できる」という点です の第1回 から再掲
25 「ディープラーニング」は、「ディープニューラルネットワーク」にて学習 する手法なので、まずは「ニューラルネットワーク」から始めます ニューラルネットワークは、人の脳内神経細胞である「ニューロン」 の脳内ネットワークをコンピュータの「人工ニューロン」で模したもの であり、ニューロン間の情報伝達により、物事を認識したり、情報 処理する人間の脳に似た機能をエミュレーションします 1.AIの歴史とディープラーニング 脳内ニューロンのネットワーク 入
力 信 号 出 力 信 号 ニューラルネットワーク 入 力 信 号 出 力 信 号 の第3回 から再掲
26 1.AIの歴史とディープラーニング ニューラルネットワーク内の単一のニューロンは、以下の通りです x1~xnの各入力の強弱により、出力yが有効な出力を行う ケースと、行わないケースが分かれますが、有効な出力を行った 場合に「ニューロンが活性化」したと表現します ニューラルネットワークとしての出力は、この単一ニューロンの組み 合わせによって決まります 入力x1 出力y
入力x2 入力xn … … の第3回 から再掲
27 1.AIの歴史とディープラーニング 「ディープラーニング」とは、このニューラルネットワークを多層構造 に構成したもので学習・推論することを指します 「データが持つ特徴を、自動抽出」できる点(≒人手が不要) が、ディープラーニングの革新的なポイントです の第3回 から再掲
28 2.現在、主流のディープラーニング手法
29 2.現在、主流のディープラーニング手法 現在、主流となっているディープラーニング手法には、「CNN」 「RNN」「AE」の3つがあります ➢ CNN (Convolutional Neural Network) •
複数用意した空間フィルタで畳込演算 (Convolution) を行い、各フィルタ結果から取捨選択 (プーリング) ことを 繰り返すことで、特徴を抽出できる ➢ RNN (Recurrent Neural Network) • 従来のNNのフィードフォワード構造に加え、フィードバック 構造も持たせることで、現在データだけで無く、過去データ からの影響も含めた、時系列としての特徴を抽出できる ➢ AE (Auto Encoder) • 次元削減時の圧縮法を教師なし学習することで、抽象 的な特徴を抽出できる (最近、データ生成で復活)
30 2.現在、主流のディープラーニング手法 AI・ML手法は、2012年以降、2次関数的成長を遂げており、 その火種が、「arXiv」という名の論文サイトで、従来の論文発表 は研究者主体でしたが、arXivではエンジニアも論文を出します 現代におけるムーアの法則と Google I/O 2018で紹介
31 3. 「カプセルネットワーク」とは?
32 3. 「カプセルネットワーク」とは? 2度の「AIの冬」の間もAI研究を続け、2012年にディープラーニ ングをヒットさせた「AIの父」、ジェフ・ヒントン博士 (70歳!) が 編み出した、ニューラルネットワークを超えると言われるAI新技術 半年前の2017年10月に論文を発表し、ニューラルネットワーク の最高精度に匹敵しつつ、誤答率が最低時のNNの半分にまで
減少できる、という研究成果を発表しています 最大の違いは、ニューラルネットワークが特徴を「全特徴の量」で 捉えていたのに対し、カプセルネットワークは特徴を「各特徴毎の ベクトル」で捉え、更に「各特徴の間にある関係性」も捉えます 現在、Google Brain PJの研究者 とトロント大学教授を兼務している
33 3. 「カプセルネットワーク」とは? カプセルネットワークは、各特徴を個別に判定し、更に各特徴間 の関係性も加味できるため、以下のような、全体としては見た目 が異なっている (回転も含む) が、各パーツの相対的な位置は 変わらない対象を「空間一致する」ものとして判別できます また学習時も、CNNでは必須だった、各パーツが微妙に違ったり、
回転させたバリエーションが不要となるため、高効率を実現します
34 3. 「カプセルネットワーク」とは?
35 3. 「カプセルネットワーク」とは? 「各特徴の間にある関係性」は、squash関数により、ベクトルの 情報量をキープしたまま、圧縮できていることで実現されています 従来のCNNでは、「マックス・プーリング」と呼ばれる、「特徴量の 最大値だけ残し、残りは切り捨てる」操作が、活性化関数にて 行われているため、情報量が消失し、関係性は判別不可でした
36 4.カプセルネットワークを実装する
37 (事前準備) Kerasは、TensorFlowをコアとして動作するラッパーライブラリで、 本来、数学を用いて、ニューラルネットワークやディープラーニング を構築する必要があるところの大部分を代行してくれます Kerasを使わず、TensorFlowそのままでコーディングした場合、 「学習」部分を数式に相当するコードで書くこととなります※ が、 Kerasを使った場合は、数式を一切使わずとも、「学習」部分が コーディングできるのが、最大の特徴です
※Kerasで省略される「学習」における数式については、末尾に付録として掲載しています https://keras.io/ja/ の第3回 から再掲
38 (事前準備) 「Anaconda」は、数学系、科学系、データ分析系のPython パッケージを、一括でインストールでき、かつ複数の環境も管理で きるアプリで、Kerasも簡単にインストールできます の第3回 から再掲
39 (事前準備) Anacondaは、以下URLからダウンロードします (ここでは、Windwos版とmacOS版について説明します) https://www.anaconda.com/download/ の第3回 から再掲
40 (事前準備) 「Environments」クリック後、「Create」ボタンから、Python 環境を作成します 【macOSのみ】Pythonを「3.5」にしてください の第3回 から再掲
41 (事前準備) Anacondaから、ターミナルを起動します このとき、誤って「root」から起動しないよう、ご注意ください の第3回 から再掲
42 (事前準備) Kerasをpipでインストールします PythonコマンドでREPLが起動し、Kerasがエラー無くimport できれば、インストールは成功です exit()と打てば、Pythonを抜けて、ターミナルに戻ります もしエラーが出たときは、前ページをやり直してください # python >>>
import keras Using TensorFlow backend. >>> >>> exit() # # pip install tensorflow-gpu # pip install keras の第3回 から再掲
43 (事前準備) Kerasをpipでインストールします 【macOSのみ】matplotlibを動かすための設定ファイルを以下 コマンドで作成し、Anacondaからターミナルを起動し直します # pip install pandas #
pip install sklearn # pip install pydot # pip install image # pip install matplotlib # pip install theano # pip install jupyter # mkdir ~/.matplotlib # echo backend : TkAgg > ~/.matplotlib/matplotlibrc
44 4.カプセルネットワークを実装する デモ (スミマセン、会場でしか お見せしません)
45 5. 「転移学習」とは?
46 5. 「転移学習」とは? あるドメインで学習させたモデルを、別のドメインに適応させること で、少ないデータしか手に入らないドメインの予測であっても可能 とする学習手法です AI界のパイオニア、Andrew Ngが発表した、ビジネスにおける 機械学習の発展予測において、最初は「教師あり学習」が活躍 したが、次に躍進するのは、
「教師なし学習」や「強化学習」で 無く、 「転移学習」と述べています
47 5. 「転移学習」とは? 転移学習の実現には、以下3つのアプローチがあります ① 学習済みモデルの出力層のみ別ドメインに適応 • ドメイン間のタスクに共通点がある場合、入力層や中間 層・隠れ層の重みは固定し、出力層だけを別ドメインで 学習させることで、共通する特徴の抽出が可能となります
② ドメイン非固有の特徴のみに限定 • 「表現学習」と呼ばれる、汎用的な特徴や、分散を学習 することで、ドメインに依存しない部分に限定して学習し、 ドメイン非固有の特徴を抽出します (AEはこの一種) ③ ドメインの違いを予め認識させて選り分ける • ドメイン間の変換を事前に学習させ、ドメインの間にある 違いを認識し、ドメイン固有と非固有を判別することで、 各々の特徴を抽出できます (≒学習の仕方を学習する)
48 6.転移学習を実装する
49 6.転移学習を実装する CPUだと、丸2日かかる転移学習も、GPU (GeForce 1060 相当)で行えば、わずか30分で終わる デモ (スミマセン、会場でしか お見せしません)
50 7. 「QRNN」とは?
51 7. 「QRNN」とは? 2016年11月、SalesForce研究所のジェームズ・ブラッドベリー らが発表した、RNNの計算時間を改善するための手法です RNNでメジャーな「LSTM (Long Short-Term Memory) は、
現在の出力を得るために、「過去の出力値」と「媒介変数の値」 の両方が必要なため、並列計算が行えず、計算に時間がかかる という問題点を持っています QRNNは、CNNの持つ並列計算能力を部分的に利用すること で、この時系列データ学習を高速化し、時間短縮もしくは単位 時間あたりの精度向上が実現できます
52 8.QRNNを実装する
53 8.QRNNを実装する QRNNの利用時実装は、とても簡単で、RNN LSTMで書かれ ているコードのLSTMクラスを、QRNNクラスに入れ替えたら完了 です QRNNクラスは、以下からダウンロードします https://github.com/DingKe/nn_playground/blob/master/qrnn/qrnn.py model =
Sequential() model.add( LSTM( 300, return_sequences = False ) ) model.add( Dense( 1, activation = ‘linear’ ) ) model.compile( loss = 'mean_squared_error, optimizer = 'adam' ) model = Sequential() model.add( QRNN(64, window_size = 60, dropout = 0 ) ) model.add( Dense( 1, activation = ‘linear’ ) ) model.compile( loss = 'mean_squared_error ', optimizer = 'adam' )
54 8.QRNNを実装する ダウンロードしたコードの内部実装は、CNNで使うconv2d()が 出てきます def preprocess_input(self, inputs, training=None): if self.window_size
> 1: inputs = K.temporal_padding(inputs, (self.window_size-1, 0)) inputs = K.expand_dims(inputs, 2) # add a dummy dimension output = K.conv2d(inputs, self.kernel, strides=self.strides, padding='valid‘, data_format='channels_last')
55 8.QRNNを実装する QRNNは、約30,000件のデータでは、RNN LSTMと比べ、 35%程度、実行時間が速く、精度も高いという結果が出ました 過去データが、より大量にある場合、並列処理が威力を発揮し、 より大きな性能差が出る可能性があります
56 9.最新AI技術のまとめ
57 9.最新AI技術のまとめ 今回、ご紹介した最新AI手法をまとめます ➢ カプセルネットワーク • 少ないデータでも、高精度かつ耐久性の高い予測が可能 であり、NN/DLを超える、高い汎化能力を発揮する • 実証が少ないが、仕組みが合理的で、トライの価値あり
➢ 転移学習 • 少ないデータのドメインも、大量データで学習済みのモデル があれば予測を行え、高い汎化能力があると言える • 「学習の仕方を学習する」ことが可能なため、将来的には、 より少ないデータからの高精度学習に応用が期待できる ➢ QRNN • 時系列データ分析は、ビジネス領域で最も重要なデータ 分析課題で、QRNNは、その効率改善に実用できる
58 9.最新AI技術のまとめ 「arXiv」では、誰でも閲覧し、利用できる論文が、2次関数的 に増え続けており、まさに日進月歩の発展が、無料で手に入る 状況で、いつまでもAI・MLを「知らない」「入門で止まっている」 「自分に関係無い」と言ってられない状況が、そこまで来ています
59 こんな流れを受けて…
①AI入門が終わった方向けのAI・MLコミュ、本日発足 昨年7月に発足した「福岡x人工知能x…」のミッションは、 「AI・MLに入門する人を増やし、仕事の中でAI・ML の開発ができる人を増やしていく」ということでした 実際に1年活動してみて、プログラミング会などの 手を動かすイベントも行いましたが、入門後、実務に 結びつかない実態が浮き彫りになってきました…そこで、 Institute for Advanced
Intelligence Fukuoka 「IAI Fukuoka」 ≒ 「居合い福岡 (イアイフクオカ)」 という、すぐに実務に結びつくAI・Mlの開発・研究 を「もくもく会」主体で推進していくようなコミュニティ、 本日、発足します (開催はconnpassにて)
②AI・MLに欠かせない前処理をOSSで無償提供 AI・MLには、前処理 (データクレンジング、変換・集計・加工) が 欠かせませんが、Elixir+Phoenix+Vue.jsで開発したOSS 「Esuna」を使えば、GUI上でデータ処理を設定でき、後続の AI・MLへとスムースにデータを流せます (ツールを無償で提供)
③Elixirで、scikit-learn/Keras相当を実装中 性能・開発効率が抜群で、福岡で流行りつつある関数型言語 「Elixir」にて、GPU活用を始めています 半年後にはscikit-learn相当、1年以内には、GPU対応済み のKeras相当をリリースできると思います 北九大、京大の方と共に Elixir GPU活用の共同研究 論文も書いてます
63 最後に AI・ML以外
7/20(金)、「重力と宇宙」イベント2回目、開催決定!! 3/16第1回開催の天体研究JK/福岡から人工衛星 飛ばすベンチャーに続き、宇宙法JDがキエフから来日!
「キエフ」ってどこ?宇宙法JD(≒宇宙少女)って何者?
8/24(金)、fukuoka.ex#13をLINEで開催! 国内・海外含め、fukuoka.exでしか手に入らない 情報やノウハウ、研究成果が毎回、満載 福岡でElixir採用企業、増殖中 今年度、20社採用、目指します connpass「fukuoka.ex」にメンバー登録したらメールお知らせ
67 ご清聴ありがとうございます