SlideShare ist ein Scribd-Unternehmen logo
1 von 2
Downloaden Sie, um offline zu lesen
Deep Learning 導入のための読書会
「ゼロから作る Deep Learning」
名古屋市工業研究所	 小川清,松原和音,斉藤直希
1. 背景
	 名古屋市工業研究所では,TOPPERS/SSP などのオープン
ソース OS の設計,MISRA C・STARC RTL 設計スタイルガ
イドなどの言語部分集合の教育,ISO/IEC 15504・HAZOP な
どの国際規格に基づいた管理・分析法を展開してきた。言語
では,アセンブラ,BASIC, FORTRAN, C, C++, PHP などの設
計言語から,Alloy, VDM++, SPIN, Z, EVENT-B などのモデル
検証,定理証明によるシステムの完全性を目指してきた。
2. 過去の読書会
	 これまでに名古屋市工業研究所で行ってきた読書会(以下,
輪講と記す)には次のものがある。
2.1 STARC RTL 設計スタイルガイド
公設試験研究機関の組み込み研究会で,HDL の教育につ
いて報告した[1]。顧問をしていただいている熊本大学の末
吉敏則教授から,STARC RTL 設計スタイルガイド[2]を用い
て教育するようにと指導をいただいた。そこで,ルネサス,
富士通の半導体の技術者の方々と日本語と英語[3]の両方を
用いて輪講を行なった[4]。SWEST においてルールの優先順
位付けを行い[5],規則と現状との差を学会等で報告し[6] [7]
[8],成果を規則の改定に反映できた[9]。
2.2 Digital Systems Testing and Testable Design[10] 	
	 論理設計において試験可能な設計はどういうものである
かを勉強するために中小企業の技術系の社長さんたちと輪
講した。FPGA の設計においては,STARC RTL 設計スタイ
ルガイドによって設計言語の記述方法を検討し,実際の論理
回路でどのような挙動をする可能性があるかを確認した。
2.3 C パズルブック[11]
	 C 言語教育で,MISRA C の源泉で C 言語規格の不十分性
を指摘する Safer C[13]や C プログラミングの落とし穴[12]
を用いた。実際に動くコードで,設計者の意図と,OS,CPU
の性能や処理系の機能によって振る舞いが異なることを確
認するために,最小限のコードで,最大限の効果を産むもの
として「C パズルブック」を用いてきた。C 言語教育の最初
に全問正解者は表彰することを宣言し,4日から16日間の
プログラミング言語教育の副教材として打ち込みを推奨し
た。今日に至るまで全問正解者はいない。また 16bit 環境が
入手しにくくなってきたので,CPU の 16bit と 32 ビットの
違いの確認がしづらく、OS が MS Win- dows も Macintosh OS
も Linux と同様に POSIX に基づいた UNIX 系の OS を土台
としており OS 違いが確認しにくい課題がある。
2.4 MISRA C
	 MISRA C[13]の解説書[14]は,SESSAME MISRA C 研究会
で作成した。最初は,ISO/IEC 9899[15]のサンプルを4種類
のコンパイラ(Watcom C, Turo C, MS C, GCC)でコンパイル
をして比較した。MISRA C2004[16]と解説書[17]にあるサン
プルも各コンパイラでコンパイルしながら読み込んだ。最新
の ISO/IEC 9899[18]及び ISO/IEC 14882[19]及び MISRA C
2012[20], MISRA C++[21]では,(Watcom C, Visual C++, GCC,
LLVM/Clang)でコンパイルしながら読み進んでいる。
3. ゼロから作る Deep Learning
3.1 計画
斉藤直希が中心に,「ゼロから作る Deep Learning」[22]読
書会を計画し,Web で告知し,2017 年 3 月より開始した。
最初は,connpass[23]などのネットで募集し,research map[24],
twitter などで展開した。
3.2 目的と目標
	 参加者の方には目的と目標を設定していただいた。その中
では,応用分野,データ区分,機材等の見通しがある方から,
読書会が済んだ時点で具体的な計画を立てることを想定し
ている方々もいた。
3.3 輪講
	 第一章は斉藤が分担し,第二章以降は参加者全員で順番に
読み上げる割り当てを決めた。参加者は当初 15 名で,章に
担当が二人から三人となった。章の担当の分担はそれぞれの
章ごとに協議してもらった。章により分量が違うため1回の
密度は濃い薄いができるが,分量の多い章は多人数で分担す
ることにした。
3.4 ハードウェア環境
	 輪講会場であるコンピュータ研修室は Macintosh mini が
21 台入っており,VMWare 上で MS Windows が動作するよ
うになっている。キーボードは Windows PC 用のキーボード
を利用している。機材は持ち込み可としている。
3.5 資料交換・操作・表示
資料は cyboze live[25]にグループを設けて資料交換するこ
とにした。メールのほか,cyboze live での連絡を主な連絡方
法とした。研修室での実習では,臨時のサーバを立てた。ま
た Mac OS によるリモート操作と,個々の操作画面の大画面
への表示なども利用した。
3.6 LT(lightening Talk)
	 輪講の最後に LT を実施している。最初は名古屋市工業研
究所の職員だけであったが,全員が参加できるような書式を
作成し,段階的に全員参加で実施予定である。
4. 言語と設計環境
4.1 Python[26]
「ゼロから作る Deep Learning」では,Python とライブラリ
Numpy を使い作る体験をする。Macintosh OS では,最初に
Python 2 が導入済みである。本では Python 3 を使うことを想
定している。そこで,Python 3 のうち,データ分析に重点を
置いた Anaconda[27]を利用することとした。
4.2 pyenv[28]
Macintosh OS では,Python 2 と Python 3 の環境を切り替え
て利用する pyenv という道具がある。今後作成する Python
表1	 参加者の特性
区分 	 	 	 	 	 	 詳	 	 細
応用分
野
画像(動画)処理,言語・文書処理,大規模デ
ータ処理(IoT 対応を含む)
データ
区分
社会的蓄積データ(地図等),自社保有・蓄積
データ,今後生成するデータ
機材 現行機材,新規導入,クラウド,検討中
が,Python 2 で動作するかどうかを試験する可能性があるた
め,容易に切り替えができる pyenv を利用することとした。
4.3 Jupyter Notebook[29]
	 参加者の方から,Anaconda を利用しているのであれば,
Jupyter Notebook を利用する提案があった。Jupyter Notebook
は,利用手引きなどの作成に向いており,実際に動作させる
ことと,印刷することの両方の機能がある。プログラムと説
明を一つのソフトウェアで管理できるため,設計の無駄が生
じにくいため推奨している。PDF 出力は LaTeX を使用する。
4.4 Azure Notebook[30]
同様に Microsoft Azure Notebook の紹介があった。ID を取得
し,Jupyter Notebook の利用の広がりを確認している。
5.進捗状況
	 3月から始めて7月に半分を超える。
5.1 「第 1 章 Python 入門」
Numpy における配列演算においてブロードキャストの機
能と R[32]に似た演算方法などがデータ処理に有用であるこ
とが推測できた。
5.2 「第 2 章	 パーセプトロン」
パーセプトロンによるアナログ(連続値)からデジタル(離
散値)変換と演算を理解した。XOR が1層のパーセプトロ
ンでは実現できず,2層にすれば実現できることがわかった。
深層の層という考え方の第一歩を歩んだ [33] 。
5.3 「第 3 章	 ニューラルネットワーク」
	 分量が多く3人で担当。jupyter notebook を利用した文章
とプログラムの混在による確認容易性が作業の進捗を助け
た。ニューラルネットに馴染み始める。
5.4 「第 4 章	 ニューラルネットワークの学習」
	 交差エントロピー誤差,ミニバッチ学習などの概念の理解
は,実際のデータ処理を繰り返すことによって習得するのが
良さそうである。微分,偏微分の数学的な概念は,それぞれ
現象などにおける物理的意味を考えながら検討すると良い
かもしれない。学習アルゴリズムの実装においては,扱うデ
ータの性質を理解していないと何をしているのか見失うか
もしれない。学習が進まない停滞期プラトーと過学習の見極
め方法が課題である。
5.5 「第 5 章	 誤差逆伝搬法」
	 p.155「ソフトマックス関数の損失関数として交差エント
ロピー誤差を用いると逆関数が」「キレイな結果」となるこ
となど関数の選択の理由がわかった。
5.6 LT による進捗の確認
	 LT において jupyter notebook, azure notebook の紹介があっ
た。丹念に読むことの利点の報告もあった。また参加者の進
捗の状況は,数学的理解,プログラミングの理解,学習理論
の理解,対象課題の解決のための進捗など多元的に把握する
ことを検討している。プログラミングの理解に「実装に関す
る説明を省略」している部分の補足資料の作成が課題である。
6. まとめと今後の課題
参加者の方には普段計算機でのプログラミングが仕事で
はない方もお見えになり,Macintosh を使うのが初めてだっ
たり,出発点は様々でした。しかし,本の内容を理解するこ
とと,書かれているプログラムを操ることができるようにな
ることは,共通の修了条件である。そこで,後半は,それぞ
れの作業環境の整備状況の確認,利用すると良い参考文献の
分類,枠組みとしても用いる道具類,公開データの範囲とク
ラウドなどのデータ保管方法など,実用的に展開できるまで
の基盤の確認を行う予定である。また,内部データの場合に
はセキュリティ対策なども合わせて紹介予定である[34]。
7. 参考文献
[1] FPGA 設計研修について,渡部謹二,小川清,斉藤直希,組込みシス
テム開発技術研究会第 87 回技術交流会,2006 年
[2] STARC RTL 設計スタイルガイド Verilog HDL 編, STARC, 2004
[3] STARC RTL Design style guide Verilog HDL,STARC, 2004
[4] Verilog HDL スタイルガイドの利用方法,長谷川誠, 渡会勝彦, 米
永裕司, 渡部謹二, 小川清,情報処理学会研究報告, 2008 年 1 月
[5] SWEST10 セミナ, Verilog スタイルガイド「こんなコードもコン
パイルエラーにならない」,小川清,2008 年 9 月
[6]Verilog HDL スタイルガイドを利用した FPGA プログラミング研
修,服部智幸, 渡部謹二, 小川清,電気関係学会東海支部, 2008 年
[7] 工業研究所における FPGA 取り組みの紹介,渡部謹二,小川
清,FPGA 設計講演会,2008 年 10 月
[8] STARC RTL 設計スタイルガイドを「こう使おう」Verilog-HDL
版,小川清,FPGA カンファレンス中部,2010 年
[9] STARC RTL 設計スタイルガイド Verilog HDL 編, 培風館, 2011
[10] Digital Systems Testing and Testable Design, Miron Abramovici,
Wiley-IEEE Press, 1994
[11] C パズルブック, Alan R.Feuer, アスキー,1985
[12] C プログラミングの落とし穴,コーニグ,トッパン,1990
[13] Safer C, Les Hatton, Mcgraw-Hill 1995
[13] MISRA C 1998, Guidelines for the use of the C language in vehicle
based software,MISRA,1998
[14] 組込み開発者におくる MISRA-C 組込みプログラミングの高
信頼化ガイド, 日本規格協会, 2004
[15] ISO/IEC 9899:1990 Programming Language C
[16] MISRA C 2004, Guidelines for the use of the C language in critical
systems, MIRA, 2004
[17] 組込み開発者におくる MISRA-C:2004 C 言語利用の高信頼化ガ
イド, 日本規格協会,2006
[18] ISO/IEC 9899:2011 Programming Language C
[19] ISO/IEC 14882:2014 Programming Language C++
[20] MISRA C 2012, Guideline for the use of the C language in critical
systems,MIRA ,2013
[21] MISRA C ++2012, Guideline for the use of the C language in critical
systems,MIRA ,2013
[22] ゼロから作る Deep Learning,斎藤康毅,オライリー, 2016	
[23] http://bit.ly/2uBb3ad
[24] http://researchmap.jp/kaizen/
[25] https://cybozulive.com/
[26] Python, numpy, https://www.python.org
[27] Anaconda, https://www.continuum.io/
[28] pyenv, https://github.com/pyenv
[29] jupyter notebook,https://jupyter.readthedocs.io/
[30] Azure Notebook, https://notebooks.azure.com/
[31] https://www.slideshare.net/kaizenjapan/deep-learning-with-
python-plus-text-processing
[32] R, https://www.r-project.org
[33] コンピュータシステムの理論と実装, Noam Nisan,Shimon
Schocken, オライリー,2015
[34] Raspberry PI の安全と安心対策,小川清,斉藤直希,安全工学シン
ポジウム, 日本学術会議,2017
謝辞
本稿作成にあたり有益な資料提供と議論を頂いた読書会の
参加者の方々に感謝します。
表 2	 進捗状況
	 進	 捗	 管	 理	 項	 目 	 	 状	 	 況
作業環境の整備(研修室) 随時確認
〃(各自職場・自宅) LT で報告
参考文献紹介(Python と)[31] データ処理,機械学習
各章の課題の洗い出し 順次実施
連携して利用する道具類 jupyter notebook
枠組みとして用いる道具類 順次相互紹介中
公開データとデータの保管 Azure Notebook
応用分野の実例 一部報告

Weitere ähnliche Inhalte

Ähnlich wie Deep Learning reading club at SWEST 2017 interactive session

第3回SEMAT勉強会 SEMATエッセンス解説
第3回SEMAT勉強会 SEMATエッセンス解説第3回SEMAT勉強会 SEMATエッセンス解説
第3回SEMAT勉強会 SEMATエッセンス解説
Hironori Washizaki
 
Agile 459 | 11/17 資料
Agile 459 | 11/17 資料Agile 459 | 11/17 資料
Agile 459 | 11/17 資料
智治 長沢
 
HTML5でOpen Dataをやってみた
HTML5でOpen DataをやってみたHTML5でOpen Dataをやってみた
HTML5でOpen Dataをやってみた
Masakazu Muraoka
 

Ähnlich wie Deep Learning reading club at SWEST 2017 interactive session (20)

ML@Loft 20200430
ML@Loft 20200430ML@Loft 20200430
ML@Loft 20200430
 
相互運用可能な作文計測システムの設計 - リアルタイムモニタリングに向けて -
相互運用可能な作文計測システムの設計 - リアルタイムモニタリングに向けて -相互運用可能な作文計測システムの設計 - リアルタイムモニタリングに向けて -
相互運用可能な作文計測システムの設計 - リアルタイムモニタリングに向けて -
 
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 
20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdf20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdf
 
160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大
 
Automatic Summarization
Automatic SummarizationAutomatic Summarization
Automatic Summarization
 
第3回SEMAT勉強会 SEMATエッセンス解説
第3回SEMAT勉強会 SEMATエッセンス解説第3回SEMAT勉強会 SEMATエッセンス解説
第3回SEMAT勉強会 SEMATエッセンス解説
 
Agile 459 | 11/17 資料
Agile 459 | 11/17 資料Agile 459 | 11/17 資料
Agile 459 | 11/17 資料
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程
 
ChatGPT Impact - その社会的/ビジネス価値を考える -
ChatGPT Impact - その社会的/ビジネス価値を考える -ChatGPT Impact - その社会的/ビジネス価値を考える -
ChatGPT Impact - その社会的/ビジネス価値を考える -
 
6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた
 
2014-01-28 Operation in the future
2014-01-28 Operation in the future2014-01-28 Operation in the future
2014-01-28 Operation in the future
 
DevOps、その前に
DevOps、その前にDevOps、その前に
DevOps、その前に
 
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
 
HTML5でOpen Dataをやってみた
HTML5でOpen DataをやってみたHTML5でOpen Dataをやってみた
HTML5でOpen Dataをやってみた
 
OpenSpan_PreMarketing
OpenSpan_PreMarketingOpenSpan_PreMarketing
OpenSpan_PreMarketing
 
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
 

Mehr von Kiyoshi Ogawa

Mehr von Kiyoshi Ogawa (20)

Misracompliant20162020
Misracompliant20162020Misracompliant20162020
Misracompliant20162020
 
High Quality Design with Hcd and hazop
High Quality Design with Hcd and hazopHigh Quality Design with Hcd and hazop
High Quality Design with Hcd and hazop
 
Deep learningwithgithubanddocker
Deep learningwithgithubanddockerDeep learningwithgithubanddocker
Deep learningwithgithubanddocker
 
Deep learningwithgithubanddocker
Deep learningwithgithubanddockerDeep learningwithgithubanddocker
Deep learningwithgithubanddocker
 
Nagoya2018
Nagoya2018Nagoya2018
Nagoya2018
 
Hazop tokyo201809
Hazop tokyo201809Hazop tokyo201809
Hazop tokyo201809
 
Who like C++ coding standard
Who like C++ coding standardWho like C++ coding standard
Who like C++ coding standard
 
Who enjoy a coding standard? ver. 0.30
Who enjoy a coding standard? ver. 0.30Who enjoy a coding standard? ver. 0.30
Who enjoy a coding standard? ver. 0.30
 
Who enjoy a coding standard? ver. 0.20
Who enjoy a coding standard? ver. 0.20Who enjoy a coding standard? ver. 0.20
Who enjoy a coding standard? ver. 0.20
 
Who enjoy a coding standard?
Who enjoy a coding standard?Who enjoy a coding standard?
Who enjoy a coding standard?
 
機械と標準
機械と標準機械と標準
機械と標準
 
TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)
 
How can we resolve problems.
How can we resolve problems.How can we resolve problems.
How can we resolve problems.
 
Datamining Introduction using R with Raspbian on Raspberry Pi 3B.
Datamining Introduction using R with Raspbian on Raspberry Pi 3B.Datamining Introduction using R with Raspbian on Raspberry Pi 3B.
Datamining Introduction using R with Raspbian on Raspberry Pi 3B.
 
Hazop Safety and Security at Fukui 2017(2/2)
Hazop Safety and Security at Fukui 2017(2/2)Hazop Safety and Security at Fukui 2017(2/2)
Hazop Safety and Security at Fukui 2017(2/2)
 
Hazop Safety and Security at Fukui 2017(1/2)
Hazop Safety and Security at Fukui 2017(1/2)Hazop Safety and Security at Fukui 2017(1/2)
Hazop Safety and Security at Fukui 2017(1/2)
 
Hazop and triz by/of/for the children(3/3)
Hazop and triz by/of/for the children(3/3)Hazop and triz by/of/for the children(3/3)
Hazop and triz by/of/for the children(3/3)
 
Hazop and triz by/of/for the children(2/3)
Hazop and triz by/of/for the children(2/3)Hazop and triz by/of/for the children(2/3)
Hazop and triz by/of/for the children(2/3)
 
Hazop and triz by/of/for the children(1/3)
Hazop and triz by/of/for the children(1/3)Hazop and triz by/of/for the children(1/3)
Hazop and triz by/of/for the children(1/3)
 
Raspberrypitraining20171027
Raspberrypitraining20171027Raspberrypitraining20171027
Raspberrypitraining20171027
 

Deep Learning reading club at SWEST 2017 interactive session

  • 1. Deep Learning 導入のための読書会 「ゼロから作る Deep Learning」 名古屋市工業研究所 小川清,松原和音,斉藤直希 1. 背景 名古屋市工業研究所では,TOPPERS/SSP などのオープン ソース OS の設計,MISRA C・STARC RTL 設計スタイルガ イドなどの言語部分集合の教育,ISO/IEC 15504・HAZOP な どの国際規格に基づいた管理・分析法を展開してきた。言語 では,アセンブラ,BASIC, FORTRAN, C, C++, PHP などの設 計言語から,Alloy, VDM++, SPIN, Z, EVENT-B などのモデル 検証,定理証明によるシステムの完全性を目指してきた。 2. 過去の読書会 これまでに名古屋市工業研究所で行ってきた読書会(以下, 輪講と記す)には次のものがある。 2.1 STARC RTL 設計スタイルガイド 公設試験研究機関の組み込み研究会で,HDL の教育につ いて報告した[1]。顧問をしていただいている熊本大学の末 吉敏則教授から,STARC RTL 設計スタイルガイド[2]を用い て教育するようにと指導をいただいた。そこで,ルネサス, 富士通の半導体の技術者の方々と日本語と英語[3]の両方を 用いて輪講を行なった[4]。SWEST においてルールの優先順 位付けを行い[5],規則と現状との差を学会等で報告し[6] [7] [8],成果を規則の改定に反映できた[9]。 2.2 Digital Systems Testing and Testable Design[10] 論理設計において試験可能な設計はどういうものである かを勉強するために中小企業の技術系の社長さんたちと輪 講した。FPGA の設計においては,STARC RTL 設計スタイ ルガイドによって設計言語の記述方法を検討し,実際の論理 回路でどのような挙動をする可能性があるかを確認した。 2.3 C パズルブック[11] C 言語教育で,MISRA C の源泉で C 言語規格の不十分性 を指摘する Safer C[13]や C プログラミングの落とし穴[12] を用いた。実際に動くコードで,設計者の意図と,OS,CPU の性能や処理系の機能によって振る舞いが異なることを確 認するために,最小限のコードで,最大限の効果を産むもの として「C パズルブック」を用いてきた。C 言語教育の最初 に全問正解者は表彰することを宣言し,4日から16日間の プログラミング言語教育の副教材として打ち込みを推奨し た。今日に至るまで全問正解者はいない。また 16bit 環境が 入手しにくくなってきたので,CPU の 16bit と 32 ビットの 違いの確認がしづらく、OS が MS Win- dows も Macintosh OS も Linux と同様に POSIX に基づいた UNIX 系の OS を土台 としており OS 違いが確認しにくい課題がある。 2.4 MISRA C MISRA C[13]の解説書[14]は,SESSAME MISRA C 研究会 で作成した。最初は,ISO/IEC 9899[15]のサンプルを4種類 のコンパイラ(Watcom C, Turo C, MS C, GCC)でコンパイル をして比較した。MISRA C2004[16]と解説書[17]にあるサン プルも各コンパイラでコンパイルしながら読み込んだ。最新 の ISO/IEC 9899[18]及び ISO/IEC 14882[19]及び MISRA C 2012[20], MISRA C++[21]では,(Watcom C, Visual C++, GCC, LLVM/Clang)でコンパイルしながら読み進んでいる。 3. ゼロから作る Deep Learning 3.1 計画 斉藤直希が中心に,「ゼロから作る Deep Learning」[22]読 書会を計画し,Web で告知し,2017 年 3 月より開始した。 最初は,connpass[23]などのネットで募集し,research map[24], twitter などで展開した。 3.2 目的と目標 参加者の方には目的と目標を設定していただいた。その中 では,応用分野,データ区分,機材等の見通しがある方から, 読書会が済んだ時点で具体的な計画を立てることを想定し ている方々もいた。 3.3 輪講 第一章は斉藤が分担し,第二章以降は参加者全員で順番に 読み上げる割り当てを決めた。参加者は当初 15 名で,章に 担当が二人から三人となった。章の担当の分担はそれぞれの 章ごとに協議してもらった。章により分量が違うため1回の 密度は濃い薄いができるが,分量の多い章は多人数で分担す ることにした。 3.4 ハードウェア環境 輪講会場であるコンピュータ研修室は Macintosh mini が 21 台入っており,VMWare 上で MS Windows が動作するよ うになっている。キーボードは Windows PC 用のキーボード を利用している。機材は持ち込み可としている。 3.5 資料交換・操作・表示 資料は cyboze live[25]にグループを設けて資料交換するこ とにした。メールのほか,cyboze live での連絡を主な連絡方 法とした。研修室での実習では,臨時のサーバを立てた。ま た Mac OS によるリモート操作と,個々の操作画面の大画面 への表示なども利用した。 3.6 LT(lightening Talk) 輪講の最後に LT を実施している。最初は名古屋市工業研 究所の職員だけであったが,全員が参加できるような書式を 作成し,段階的に全員参加で実施予定である。 4. 言語と設計環境 4.1 Python[26] 「ゼロから作る Deep Learning」では,Python とライブラリ Numpy を使い作る体験をする。Macintosh OS では,最初に Python 2 が導入済みである。本では Python 3 を使うことを想 定している。そこで,Python 3 のうち,データ分析に重点を 置いた Anaconda[27]を利用することとした。 4.2 pyenv[28] Macintosh OS では,Python 2 と Python 3 の環境を切り替え て利用する pyenv という道具がある。今後作成する Python 表1 参加者の特性 区分 詳 細 応用分 野 画像(動画)処理,言語・文書処理,大規模デ ータ処理(IoT 対応を含む) データ 区分 社会的蓄積データ(地図等),自社保有・蓄積 データ,今後生成するデータ 機材 現行機材,新規導入,クラウド,検討中
  • 2. が,Python 2 で動作するかどうかを試験する可能性があるた め,容易に切り替えができる pyenv を利用することとした。 4.3 Jupyter Notebook[29] 参加者の方から,Anaconda を利用しているのであれば, Jupyter Notebook を利用する提案があった。Jupyter Notebook は,利用手引きなどの作成に向いており,実際に動作させる ことと,印刷することの両方の機能がある。プログラムと説 明を一つのソフトウェアで管理できるため,設計の無駄が生 じにくいため推奨している。PDF 出力は LaTeX を使用する。 4.4 Azure Notebook[30] 同様に Microsoft Azure Notebook の紹介があった。ID を取得 し,Jupyter Notebook の利用の広がりを確認している。 5.進捗状況 3月から始めて7月に半分を超える。 5.1 「第 1 章 Python 入門」 Numpy における配列演算においてブロードキャストの機 能と R[32]に似た演算方法などがデータ処理に有用であるこ とが推測できた。 5.2 「第 2 章 パーセプトロン」 パーセプトロンによるアナログ(連続値)からデジタル(離 散値)変換と演算を理解した。XOR が1層のパーセプトロ ンでは実現できず,2層にすれば実現できることがわかった。 深層の層という考え方の第一歩を歩んだ [33] 。 5.3 「第 3 章 ニューラルネットワーク」 分量が多く3人で担当。jupyter notebook を利用した文章 とプログラムの混在による確認容易性が作業の進捗を助け た。ニューラルネットに馴染み始める。 5.4 「第 4 章 ニューラルネットワークの学習」 交差エントロピー誤差,ミニバッチ学習などの概念の理解 は,実際のデータ処理を繰り返すことによって習得するのが 良さそうである。微分,偏微分の数学的な概念は,それぞれ 現象などにおける物理的意味を考えながら検討すると良い かもしれない。学習アルゴリズムの実装においては,扱うデ ータの性質を理解していないと何をしているのか見失うか もしれない。学習が進まない停滞期プラトーと過学習の見極 め方法が課題である。 5.5 「第 5 章 誤差逆伝搬法」 p.155「ソフトマックス関数の損失関数として交差エント ロピー誤差を用いると逆関数が」「キレイな結果」となるこ となど関数の選択の理由がわかった。 5.6 LT による進捗の確認 LT において jupyter notebook, azure notebook の紹介があっ た。丹念に読むことの利点の報告もあった。また参加者の進 捗の状況は,数学的理解,プログラミングの理解,学習理論 の理解,対象課題の解決のための進捗など多元的に把握する ことを検討している。プログラミングの理解に「実装に関す る説明を省略」している部分の補足資料の作成が課題である。 6. まとめと今後の課題 参加者の方には普段計算機でのプログラミングが仕事で はない方もお見えになり,Macintosh を使うのが初めてだっ たり,出発点は様々でした。しかし,本の内容を理解するこ とと,書かれているプログラムを操ることができるようにな ることは,共通の修了条件である。そこで,後半は,それぞ れの作業環境の整備状況の確認,利用すると良い参考文献の 分類,枠組みとしても用いる道具類,公開データの範囲とク ラウドなどのデータ保管方法など,実用的に展開できるまで の基盤の確認を行う予定である。また,内部データの場合に はセキュリティ対策なども合わせて紹介予定である[34]。 7. 参考文献 [1] FPGA 設計研修について,渡部謹二,小川清,斉藤直希,組込みシス テム開発技術研究会第 87 回技術交流会,2006 年 [2] STARC RTL 設計スタイルガイド Verilog HDL 編, STARC, 2004 [3] STARC RTL Design style guide Verilog HDL,STARC, 2004 [4] Verilog HDL スタイルガイドの利用方法,長谷川誠, 渡会勝彦, 米 永裕司, 渡部謹二, 小川清,情報処理学会研究報告, 2008 年 1 月 [5] SWEST10 セミナ, Verilog スタイルガイド「こんなコードもコン パイルエラーにならない」,小川清,2008 年 9 月 [6]Verilog HDL スタイルガイドを利用した FPGA プログラミング研 修,服部智幸, 渡部謹二, 小川清,電気関係学会東海支部, 2008 年 [7] 工業研究所における FPGA 取り組みの紹介,渡部謹二,小川 清,FPGA 設計講演会,2008 年 10 月 [8] STARC RTL 設計スタイルガイドを「こう使おう」Verilog-HDL 版,小川清,FPGA カンファレンス中部,2010 年 [9] STARC RTL 設計スタイルガイド Verilog HDL 編, 培風館, 2011 [10] Digital Systems Testing and Testable Design, Miron Abramovici, Wiley-IEEE Press, 1994 [11] C パズルブック, Alan R.Feuer, アスキー,1985 [12] C プログラミングの落とし穴,コーニグ,トッパン,1990 [13] Safer C, Les Hatton, Mcgraw-Hill 1995 [13] MISRA C 1998, Guidelines for the use of the C language in vehicle based software,MISRA,1998 [14] 組込み開発者におくる MISRA-C 組込みプログラミングの高 信頼化ガイド, 日本規格協会, 2004 [15] ISO/IEC 9899:1990 Programming Language C [16] MISRA C 2004, Guidelines for the use of the C language in critical systems, MIRA, 2004 [17] 組込み開発者におくる MISRA-C:2004 C 言語利用の高信頼化ガ イド, 日本規格協会,2006 [18] ISO/IEC 9899:2011 Programming Language C [19] ISO/IEC 14882:2014 Programming Language C++ [20] MISRA C 2012, Guideline for the use of the C language in critical systems,MIRA ,2013 [21] MISRA C ++2012, Guideline for the use of the C language in critical systems,MIRA ,2013 [22] ゼロから作る Deep Learning,斎藤康毅,オライリー, 2016 [23] http://bit.ly/2uBb3ad [24] http://researchmap.jp/kaizen/ [25] https://cybozulive.com/ [26] Python, numpy, https://www.python.org [27] Anaconda, https://www.continuum.io/ [28] pyenv, https://github.com/pyenv [29] jupyter notebook,https://jupyter.readthedocs.io/ [30] Azure Notebook, https://notebooks.azure.com/ [31] https://www.slideshare.net/kaizenjapan/deep-learning-with- python-plus-text-processing [32] R, https://www.r-project.org [33] コンピュータシステムの理論と実装, Noam Nisan,Shimon Schocken, オライリー,2015 [34] Raspberry PI の安全と安心対策,小川清,斉藤直希,安全工学シン ポジウム, 日本学術会議,2017 謝辞 本稿作成にあたり有益な資料提供と議論を頂いた読書会の 参加者の方々に感謝します。 表 2 進捗状況 進 捗 管 理 項 目 状 況 作業環境の整備(研修室) 随時確認 〃(各自職場・自宅) LT で報告 参考文献紹介(Python と)[31] データ処理,機械学習 各章の課題の洗い出し 順次実施 連携して利用する道具類 jupyter notebook 枠組みとして用いる道具類 順次相互紹介中 公開データとデータの保管 Azure Notebook 応用分野の実例 一部報告