SlideShare a Scribd company logo
1 of 24
Peephole Connectionsを実装して
Chainerのcontributorになった話
2016/07/02 @Chaienr Meetup #03
1
自己紹介
瀬戸山 幸大郎(Kotaro Setoyama)
■早稲田基幹情報B4
研究テーマ:音声合成(Text-to-Speech)
■アルバイト@Preferred Infrastructure
内容:音声認識(Speech-to-Text)
Twitter: @Kotaro_Setoyama
2
本日の内容
■LSTMとPeepholeについて
3
■開発の流れ
■まとめ
LSTM
わかるLSTM ~ 最近の動向と共に - Qiita http://qiita.com/t_Signull/items/21b82be280b46f467d1b より
■現在のChainerのLSTM[Gers+ 99]
4
LSTM with Peephole Connections
■LSTM with Peephole Connections[Gers 01]
5わかるLSTM ~ 最近の動向と共に - Qiita http://qiita.com/t_Signull/items/21b82be280b46f467d1b より
何が嬉しいのか?
Output Gateが出力を遮断している場合,セルの状態が
次の時刻に反映されない
0
0
0
わかるLSTM ~ 最近の動向と共に - Qiita http://qiita.com/t_Signull/items/21b82be280b46f467d1b より 6
開発の流れ
■Chainerのページに載っているDefine your own function
を読む
7
■論文を読む
■Chainer集中開発&実装
■相談&実装
開発の流れ
■Chainerのページに載っているDefine your own function
を読む
8
■論文を読む
■Chainer集中開発&実装
■相談&実装
9
オリジナルのfunctionを実装する手順
10
オリジナルのfunctionを実装する手順
forward,backward,テストが必要らしい
開発の流れ
■Chainerのページに載っているDefine your own function
を読む
11
■論文を読む
■Chainer集中開発&実装
■相談&実装
論文を読む
Gers, Felix. Long short-term memory in recurrent neural networks. Diss. Universität Hannover, 2001. 12
論文を読む
13
■数式をコードでどう記述すれば良いかは何となく理解した
→ 既存のLSTMを拡張するか,一から実装するか
開発の流れ
■Chainerのページに載っているDefine your own function
を読む
14
■論文を読む
■Chainer集中開発&実装
■相談&実装
Chainer集中開発
15
■LSTMは重みのかけ算をLinkで,ユニット内部の計算を
Functionで行っている
■セルの値とLSTMの出力をLinkに返している
■Peepholeはそれぞれのゲートにセルの値を追加してるので
,
Linkでセルの値に重みをかけてゲートに足せばよさそう
FunctionとLinkを少し改造すれば実装できそう?
実装
■Input Gate,Forget Gateには1時刻前(t-1)のセルの値が,
Output Gateには今の時刻(t)のセルの値が入る
→ 既存のコードを流用すると,Output Gateにセルの値を足
せない
16
開発の流れ
■Chainerのページに載っているDefine your own function
を読む
17
■論文を読む
■Chainer集中開発&実装
■相談&実装
相談&実装
■他のRNNのユニットにも共通の問題
■backwardは実装せずにforwardだけ実装すれば良い
■forwardをChainerのfunctionだけで実装してbackwardは
chain ruleで自動実行
■functionを呼び出すオーバーヘッドによって若干遅くなる
18
テスト
■定義した関数1つ1つに対して行う(unittest)
■CPU版とGPU版をテストを書く
■@attr.gpuでデコレータにすればCPUと共通のコードでテスト可能
19
完成
20
マージされてません
21
RNNの中間層のユニットたち
■LSTM → 使える
■LSTM with Peephole Connections → 実装済 but 使えない
■GRU → 使える
■SGU,DSGU →実装済 but 使えない
■MGU →実装済 but 使えない
22
RNNの中間層のユニットたち
■LSTM → 使える
■LSTM with Peephole Connections → 実装済 but 使えない
■GRU → 使える
■SGU,DSGU →実装済 but 使えない
■MGU →実装済 but 使えない
ユニットを切り替えて比較実験を行えるようにインタフェー
スを統一したい
→ アイデア募集中 #1271
23
まとめ
■Chainerにcontributeしよう!
■Chainer集中開発に参加しよう!
■わからないことは開発陣に積極的に聞こう!
24

More Related Content

Viewers also liked

マシンパーセプション研究におけるChainer活用事例
マシンパーセプション研究におけるChainer活用事例マシンパーセプション研究におけるChainer活用事例
マシンパーセプション研究におけるChainer活用事例nlab_utokyo
 
Chainer, Cupy入門
Chainer, Cupy入門Chainer, Cupy入門
Chainer, Cupy入門Yuya Unno
 
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1NVIDIA Japan
 
Chainer入門と最近の機能
Chainer入門と最近の機能Chainer入門と最近の機能
Chainer入門と最近の機能Yuya Unno
 
大規模データ時代に求められる自然言語処理 -言語情報から世界を捉える-
大規模データ時代に求められる自然言語処理 -言語情報から世界を捉える-大規模データ時代に求められる自然言語処理 -言語情報から世界を捉える-
大規模データ時代に求められる自然言語処理 -言語情報から世界を捉える-Yuya Unno
 
Learning to remember rare events
Learning to remember rare eventsLearning to remember rare events
Learning to remember rare events홍배 김
 
自然言語処理@春の情報処理祭
自然言語処理@春の情報処理祭自然言語処理@春の情報処理祭
自然言語処理@春の情報処理祭Yuya Unno
 
ピーFIの研究開発現場
ピーFIの研究開発現場ピーFIの研究開発現場
ピーFIの研究開発現場Yuya Unno
 
Normalization 방법
Normalization 방법 Normalization 방법
Normalization 방법 홍배 김
 
NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」Yuya Unno
 
EMNLP2014読み会 "Efficient Non-parametric Estimation of Multiple Embeddings per ...
EMNLP2014読み会 "Efficient Non-parametric Estimation of Multiple Embeddings per ...EMNLP2014読み会 "Efficient Non-parametric Estimation of Multiple Embeddings per ...
EMNLP2014読み会 "Efficient Non-parametric Estimation of Multiple Embeddings per ...Yuya Unno
 
表現学習時代の生成語彙論ことはじめ
表現学習時代の生成語彙論ことはじめ表現学習時代の生成語彙論ことはじめ
表現学習時代の生成語彙論ことはじめYuya Unno
 
企業における自然言語処理技術利用の最先端
企業における自然言語処理技術利用の最先端企業における自然言語処理技術利用の最先端
企業における自然言語処理技術利用の最先端Yuya Unno
 
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)Yuya Unno
 
Chainerの使い方と 自然言語処理への応用
Chainerの使い方と自然言語処理への応用Chainerの使い方と自然言語処理への応用
Chainerの使い方と 自然言語処理への応用Yuya Unno
 
Chainer meetup20151014
Chainer meetup20151014Chainer meetup20151014
Chainer meetup20151014Jiro Nishitoba
 
Chainer Meetup LT (Alpaca)
Chainer Meetup LT (Alpaca)Chainer Meetup LT (Alpaca)
Chainer Meetup LT (Alpaca)Jun-ya Norimatsu
 
A Chainer MeetUp Talk
A Chainer MeetUp TalkA Chainer MeetUp Talk
A Chainer MeetUp TalkYusuke Oda
 
Chainer meetup
Chainer meetupChainer meetup
Chainer meetupkikusu
 

Viewers also liked (20)

マシンパーセプション研究におけるChainer活用事例
マシンパーセプション研究におけるChainer活用事例マシンパーセプション研究におけるChainer活用事例
マシンパーセプション研究におけるChainer活用事例
 
Chainer, Cupy入門
Chainer, Cupy入門Chainer, Cupy入門
Chainer, Cupy入門
 
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
 
Chainer入門と最近の機能
Chainer入門と最近の機能Chainer入門と最近の機能
Chainer入門と最近の機能
 
Vae gan nlp
Vae gan nlpVae gan nlp
Vae gan nlp
 
大規模データ時代に求められる自然言語処理 -言語情報から世界を捉える-
大規模データ時代に求められる自然言語処理 -言語情報から世界を捉える-大規模データ時代に求められる自然言語処理 -言語情報から世界を捉える-
大規模データ時代に求められる自然言語処理 -言語情報から世界を捉える-
 
Learning to remember rare events
Learning to remember rare eventsLearning to remember rare events
Learning to remember rare events
 
自然言語処理@春の情報処理祭
自然言語処理@春の情報処理祭自然言語処理@春の情報処理祭
自然言語処理@春の情報処理祭
 
ピーFIの研究開発現場
ピーFIの研究開発現場ピーFIの研究開発現場
ピーFIの研究開発現場
 
Normalization 방법
Normalization 방법 Normalization 방법
Normalization 방법
 
NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」
 
EMNLP2014読み会 "Efficient Non-parametric Estimation of Multiple Embeddings per ...
EMNLP2014読み会 "Efficient Non-parametric Estimation of Multiple Embeddings per ...EMNLP2014読み会 "Efficient Non-parametric Estimation of Multiple Embeddings per ...
EMNLP2014読み会 "Efficient Non-parametric Estimation of Multiple Embeddings per ...
 
表現学習時代の生成語彙論ことはじめ
表現学習時代の生成語彙論ことはじめ表現学習時代の生成語彙論ことはじめ
表現学習時代の生成語彙論ことはじめ
 
企業における自然言語処理技術利用の最先端
企業における自然言語処理技術利用の最先端企業における自然言語処理技術利用の最先端
企業における自然言語処理技術利用の最先端
 
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
 
Chainerの使い方と 自然言語処理への応用
Chainerの使い方と自然言語処理への応用Chainerの使い方と自然言語処理への応用
Chainerの使い方と 自然言語処理への応用
 
Chainer meetup20151014
Chainer meetup20151014Chainer meetup20151014
Chainer meetup20151014
 
Chainer Meetup LT (Alpaca)
Chainer Meetup LT (Alpaca)Chainer Meetup LT (Alpaca)
Chainer Meetup LT (Alpaca)
 
A Chainer MeetUp Talk
A Chainer MeetUp TalkA Chainer MeetUp Talk
A Chainer MeetUp Talk
 
Chainer meetup
Chainer meetupChainer meetup
Chainer meetup
 

Similar to Chainer meetup03

PHP初心者、がんばる。
PHP初心者、がんばる。PHP初心者、がんばる。
PHP初心者、がんばる。forisel
 
2019 kotlin-rejected-fest-doyaaaaaken
2019 kotlin-rejected-fest-doyaaaaaken2019 kotlin-rejected-fest-doyaaaaaken
2019 kotlin-rejected-fest-doyaaaaakenKoyama Kenta
 
Data channelの活用方法とその可能性 - WebRTC Conference Japan
Data channelの活用方法とその可能性 - WebRTC Conference JapanData channelの活用方法とその可能性 - WebRTC Conference Japan
Data channelの活用方法とその可能性 - WebRTC Conference JapanShintaro Tanaka
 
Sano tokyowebmining 36_20140526
Sano tokyowebmining 36_20140526Sano tokyowebmining 36_20140526
Sano tokyowebmining 36_20140526Masakazu Sano
 
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編Daisuke Shimada
 
クラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccampクラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccampMasahiro NAKAYAMA
 
名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~kataware
 
S20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれからS20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれからTakeshi Akutsu
 
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣aslead
 
ストリーム処理とSensorBee
ストリーム処理とSensorBeeストリーム処理とSensorBee
ストリーム処理とSensorBeeDaisuke Tanaka
 
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapyPython 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy敦志 金谷
 
はてなにおける機械学習の取り組み
はてなにおける機械学習の取り組みはてなにおける機械学習の取り組み
はてなにおける機械学習の取り組みsyou6162
 
いわてTitanium勉強会 #3 「Titaniumに触れてみよう」
いわてTitanium勉強会 #3 「Titaniumに触れてみよう」いわてTitanium勉強会 #3 「Titaniumに触れてみよう」
いわてTitanium勉強会 #3 「Titaniumに触れてみよう」Issei Komatsu
 
「理論から学ぶデータベース実践入門」読書会スペシャル
「理論から学ぶデータベース実践入門」読書会スペシャル「理論から学ぶデータベース実践入門」読書会スペシャル
「理論から学ぶデータベース実践入門」読書会スペシャルMasahiro Tomita
 

Similar to Chainer meetup03 (20)

PHP初心者、がんばる。
PHP初心者、がんばる。PHP初心者、がんばる。
PHP初心者、がんばる。
 
2019 kotlin-rejected-fest-doyaaaaaken
2019 kotlin-rejected-fest-doyaaaaaken2019 kotlin-rejected-fest-doyaaaaaken
2019 kotlin-rejected-fest-doyaaaaaken
 
Data channelの活用方法とその可能性 - WebRTC Conference Japan
Data channelの活用方法とその可能性 - WebRTC Conference JapanData channelの活用方法とその可能性 - WebRTC Conference Japan
Data channelの活用方法とその可能性 - WebRTC Conference Japan
 
Sano tokyowebmining 36_20140526
Sano tokyowebmining 36_20140526Sano tokyowebmining 36_20140526
Sano tokyowebmining 36_20140526
 
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
 
クラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccampクラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccamp
 
20120525 mt websocket
20120525 mt websocket20120525 mt websocket
20120525 mt websocket
 
名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~
 
S20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれからS20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれから
 
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
 
ストリーム処理とSensorBee
ストリーム処理とSensorBeeストリーム処理とSensorBee
ストリーム処理とSensorBee
 
ChatOps@研究室
ChatOps@研究室ChatOps@研究室
ChatOps@研究室
 
S13 t0 introduction
S13 t0 introductionS13 t0 introduction
S13 t0 introduction
 
Techcircle005 welcome
Techcircle005 welcomeTechcircle005 welcome
Techcircle005 welcome
 
S28 t0 introduction
S28 t0 introductionS28 t0 introduction
S28 t0 introduction
 
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapyPython 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy
 
はてなにおける機械学習の取り組み
はてなにおける機械学習の取り組みはてなにおける機械学習の取り組み
はてなにおける機械学習の取り組み
 
いわてTitanium勉強会 #3 「Titaniumに触れてみよう」
いわてTitanium勉強会 #3 「Titaniumに触れてみよう」いわてTitanium勉強会 #3 「Titaniumに触れてみよう」
いわてTitanium勉強会 #3 「Titaniumに触れてみよう」
 
S18 t0 introduction
S18 t0 introductionS18 t0 introduction
S18 t0 introduction
 
「理論から学ぶデータベース実践入門」読書会スペシャル
「理論から学ぶデータベース実践入門」読書会スペシャル「理論から学ぶデータベース実践入門」読書会スペシャル
「理論から学ぶデータベース実践入門」読書会スペシャル
 

Chainer meetup03