情報工学工房 - university of...
TRANSCRIPT
情報工学工房
どの学年どの類・学科でも取れる
工房スタイルの授業
http://pr.cei.uec.ac.jp/kobo2016/
とりまとめ役:岡本吉央
[email protected] 西4-206
情報工学工房とは?
授業じゃないような授業
プログラミング中心
出る杭を伸ばす
今年度のテーマ
• Androidプログラミング
• 競技プログラミング
• FPGA
• Unityによる物理計算アプリ
• 不確定ゲームAIを作ろう!
• プロジェクトオイラーに挑戦
• データ解析と機械学習
• DeepLearningで画像認識に挑戦!
注意点• 教員毎にテーマがありテーマ毎に活動します
• 指導方針は教員によってかなり違います– 例1:前半は講義形式、後半は自由に開発
– 例2:最初から自分でやるが教員も同席
• 通年でやり通せるかよく考えて下さい– 開講曜日は教員により違います
– 履修登録は岡本が行い、基本的に途中で取り消しはしません
• 発表に積極的に参加して下さい– 調布祭、最終発表会
– 各テーマでの対外的な大会
スケジュール• 4/12 : 説明会• 4/20 : テーマ希望調査終了• 4月末:テーマ決定• 5月初旬~中旬:テーマ毎の活動開始
– 担当の先生から初回の集合日時・場所を連絡– UECアカウントのメールに連絡が行くので読めるように
• 5月下旬:履修登録• 11月:調布祭での展示
– ポスターやデモなどの展示
• 2月:最終発表– 全テーマが集まり発表会
• その他テーマ毎に大会に出たりするところもある
テーマ希望調査
• Webclassを使って行います(4/20 23:59まで)
– https://webclass.cdel.uec.ac.jp/
• 登録方法
–右下の「参加可能なコース」の中から「H28 情報工学工房」を選んで、メンバーに
–金曜5限に「H28 情報工学工房」が出現
–それを選んで、「テスト/アンケート」 の欄に「テーマ希望調査」を選んで入力(パスワード:IEL2016)
–第3希望まで入力可。アピール文は任意(希望集中時の決定に影響を与える可能性あり)
テーマ決定
• 情報工学工房のWebページにて (4/30 までに)
– http://pr.cei.uec.ac.jp/kobo2016/
• 調整のための連絡
– 4/21以降、UECメールに届く可能性があるので注意して下さい
• その後はテーマ別の活動
今年度のテーマ
• Androidプログラミング
• 競技プログラミング
• FPGA
• Unityによる物理計算アプリ
• 不確定ゲームAIを作ろう!
• プロジェクトオイラーに挑戦
• データ解析と機械学習
• DeepLearningで画像認識に挑戦!
Androidプログラミング (寺田)
• 希望人数:5名+2名+α• 必要技能:何かのプログラミング言語が使えること• 実施時間:参加者の予定で調整する(昨年は前期は月曜5限)
• 概要:Androidタブレットの上で, 面白いアプリケーションを作るのを目標にします.当方で Huawei タブレットを5+2台用意しました. 自前のスマートフォンやタブレットが使える, という人は希望人数の外枠(α)として受け入れる予定です. このテーマを希望する人は, 機器について, 当方用意のものを利用希望(5+2名枠)か, 自前の機器を利用(α枠)か,を明記してください.
利用する言語はJavaですが, 初期に簡単な導入を行いますので, 何かプログラミング言語をひとつでも習得していれば大丈夫なようにします. (C, Pascal, Perl, Ruby などなど)
Androidプログラミング
• Android のプログラミングをやってみよう
– HUAWEI MediaPad X1 7.0(5台)
– HUAWEI MediaPad M2 8.0 (2台)
–自前のスマホやタブレットでもOK
• Java言語でプログラミング
• 開発環境は学科の教育用コンピュータ (CED)
–自前のノートPCでもOK (→家でも開発できる)
• マルチタッチのゲーム、Twitterクライアント…
担当: 寺田 実
競技プログラミング(岡本、高橋)
• 希望人数:10名程度
• 必要技能:反復と再帰を用いたプログラムが作成できること
• 実施時間:火曜 16:30~18:00
• 概要:ACM国際大学対抗プログラミングコンテストなどの競技プログラミングで好成績を残すことを最終目標として,その基礎となるアルゴリズムの設計法と解析法,ならびに,的確なプログラムの作成法を鍛える.過去の大会などで出題された問題を解くためのプログラムを各自が事前に作成して,それを持ち寄り,内容を検討することでより深い理解を目指す.
この1年だけで好成績を残すだけの実力はつけられないかもしれないけれども,そのための基礎技能を養うことが1年を通しての目標である.
何をするのか ACM国際大学対抗プログラミングコンテストの過去問を毎週解いてアルゴリズムの設計法と解析法,プログラムの的確な作成法を体得する
易しい題材を選び,それを深く掘り下げることから始める
ACM国際大学対抗プログラミングコンテストの国内予選に参加する
使用言語:C,C++,Java のいずれか
誰に向いているのか プログラミングの実力と技能を磨きたい方
プログラミングコンテストに出てみたい方
担当:岡本,高橋
2013年世界大会の様子
競技プログラミング
FPGA(成見)
• 希望人数:若干名• 必要技能:FPGAをいじったことがある、もしくは興味がある人
• 実施時間:月曜5限か水曜5限• 概要:
FPGAを使って何らかのシステムを動作させることを目標とします。最初にVerilog言語を使ってFPGAボードでLED点滅や音の生成など簡単な機能を実装します。次に、HDMIコネクタからディスプレイ信号を出力します。そして練習としてテトリスなどのゲームの機能を実装します。後半は実際にシステムを製作します。場合によってはコントローラーなどの電子工作を行うかもしれません。既にある程度ハードウェアをいじったことがある人や、FPGA設計に興味があって調べたことがある人に対し、実際にシステムを作ることをサポートします。VerilogやFPGAの勉強、シミュレーションによるバグ取りなどは参考書を見ながら各自で行って頂くものとし、教員はアドバイス程度しか行いません。
FPGA (成見)
• FPGAとは書き換え可能な論理素子
• C言語に似たハードウェア設計言語(Verilog)を使う
• 最初は簡単なゲームを実装
• 後半に開発を想定しているシステム例– HDMI入力付タブレット– HDMI信号のキャプチャ装置– ソフトウェア無線– インベーダーゲーム– ファミコンエミュレータ
• 過去の例– テトリス– オシロスコープ– ソフトウェア無線(未完成)
使うFPGAボードの例(Digilent社Atlys)
2011年に作ったテトリスの画面
Unityによる物理計算アプリ(成見)
• 希望人数:6名程度
• 必要技能:プログラミングやスクリプト言語の経験があること
• 実施時間:月曜5限か水曜5限• 概要:
ゲーム開発環境であるUnityを使ってアプリを作ります。最初に参考書やWeb上のチュートリアルを見て勉強します。次に、Unity内の物理演算機能を使って高校物理や大学初年次の物理に役立つアプリケーションを開発します。スマートフォンのセンサーを有効に使うと面白いでしょう。GearVRというHMDも3台あるので試せます。
後半は物理演算を使ったゲームや、多人数対応のアプリなど、Unityの機能を活用したアプリケーションを開発します。 2,3のグループに分かれて開発することを想定しています。 TAが適宜相談に乗りますが、基本は参考書を見ながら各自で勉強するものとします。
Unityによる物理計算アプリ(成見)
• 前半– Unityの物理演算機能を使って物理教育(高校や大学初年次)に役立つアプリ
– GearVRを試しに使う
• 後半– 物理演算を使ったゲーム
– GearVRを使ったアプリ
– 多人数アプリ
– その他自由に
• I科の計算機室でUnity Proが使えますが人数限定
http://www.samsung.com/jp/product/gearvr/
射的ゲーム
迷路ゲーム ドラゴンゲーム
不確定ゲームAIを作ろう! (伊藤毅志)
• 希望人数:6名程度
• 必要技能: C言語にある程度習熟していること
• 実施時間:木曜5,6限予定ですが、応相談。(参加者やTAの都合に合わせて決めます)
• 概要:コンピュータ将棋、囲碁が次々と人間のプロ棋士に勝利を収めており、確定ゲーム(不確定な要素の無いゲーム)は、一つの区切りを迎えています。次の対象として、不確定要素を含むゲームが注目を集めています。ここでは、「カーリング」と「サイコロ将棋」という二つの不確定ゲームから選択してゲームAIを作っていきます。ゲームで遊ぶ所から始めます!
不確定ゲームAIを作ろう!担当:伊藤毅志希望人数:6名程度必要技能:C言語にある程度習熟していること実施時間:木曜5,6限予定ですが、応相談。
(参加者やTAの都合に合わせて決めます)概要と目標:コンピュータ将棋、囲碁が次々と人間のプロ棋士に勝利を収めており、確定ゲーム(不確定な要素の無いゲーム)は、一つの区切りを迎えています。次の対象として、不確定要素を含むゲームが注目を集めています。ここでは、「カーリング」と「サイコロ将棋」という二つの不確定ゲームから選択してゲームAIを作っていきます。ゲームで遊ぶ所から始めます!
サイコロ将棋は、5五将棋という小路盤の将棋にサイコロという不確定要素を組み合わせた新しいゲーム。2015年に伊藤毅志が
ルールを考案して商品化された。
<こんな人向き>・思考ゲームの基礎を知りたい人・強い思考ゲームAIを書いてみたい人・プログラミングスキルを試したい人
カーリングは「氷上のチェス」と呼ばれる高度に戦略性の高いゲーム。これをコンピュータ上で対戦できるプラットフォーム「デジタルカーリング」が伊藤毅志研究室で開発された。
このプラットフォーム上でAIの優秀性を競うUEC杯大会が毎年開催されている。
工房では、この大会への参加を目指す!
• 希望人数:とくになし• 必要技能:C言語プログラムに興味があること• 実施時間:木曜5限を予定• 概要:
Project Euler (http://projecteuler.net/)の問題を個人ごとに解いていきます。
プロジェクトオイラーは世界中から48万人が挑戦している数学プログラミング問題サイトです。現在約500問あり1問以上を解いたのは48万人ですが、100問解いた人となるとそのうちの1.68%の8千人しかいません。1年間で最低10問、できれば50問を解いて、世界の上位10%を目指しましょう。
C言語を使用して、ひとりひとりのペースでじっくりと考えプログラムを作り答を出します。
基本的には各自で好きな時に好きなだけ問題を解きます。実施時間内では、サイト登録のしかたやプログラミングの基礎から、解答に役立つテクニックなどを相互に勉強します。特定の問題の解答・解説等は一切しません。
プロジェクトオイラーに挑戦(西野順二)
• 希望人数:10名程度
• 必要技能:数理やプログラム言語 (主に R or Matlab)の習得に意欲があるもの
• 実施時間:参加者の予定で決める.研究室でOJT
• 概要:データサイエンティストの基礎を学ぶ.データ解析を行い,様々な機械学習技術を習得する.参加者の興味に従い調整するが,例えば以下のテーマやキーワードを考えている.– 1. ヘルスケアデータ解析 (クラスタリング、主成分分析、重回帰、Lasso回帰、SVM、カーネル法, etc)
– 2. 時系列予測 (風力予測、隠れマルコフモデル、状態空間モデル、確率微分方程式、ブラウン運動、カーネルベイズ)
– 3. パーシステントホモロジー (位相的データ解析、ネットワーク、単体複体、ベッチ数)
– 4. Kaggleを用いた実習を行う.
– 5. データ解析コンペティションに参加し,実データの解析・モデル作成を行う.
各テーマは,個人や数名のグループで取り組む.1,2,3については, 主に西山研(植野研・川野研)でOJTで指導を行う.学生主体で進めてもらうが院生による指導も受けられる.4, 5については, 経営科学系研究部会連合協議会主催のデータ解析コン
ペティションに出場することを目的とする.統計モデル、数理モデルを用いた実データのデータ解析を行い,データ解析結果の解釈や統計モデルの妥当性などについてより深い理解を目指す。データ解析コンペティションでは、チームで作業を分担し、毎週の進捗状況について報告を行い、知識を共有する。
データ解析と機械学習(高橋、西山、岡本)
データ解析と機械学習1. ヘルスケアデータ解析
2. 時系列予測
3. パーシステントホモロジー
4. Kaggleを用いた実習を行う.
5. データ解析コンペティションに参加し,
実データの解析・モデル作成を行う. Wikipedia (DXA)
Wikipedia (TDA)Kaggle
• 希望人数:6名以内• 必要技能:Pythonを使ったプログラミングの経験があること.• 実施時間:参加者の予定で決める.
• 概要:画像認識技術はすでに人間の認識能力を超えていると言われている.それは,Deep Learning技術が,Webから収集した大量の画像,GPUによる高速計算,と融合することによって実現されたものである.本テーマでは,基本的なDeep Learningのアルゴリズムを理解したうえで,CEDのGPUクラスタを活用して,大規模画像認識,画像の説明文生成などの基本システムを実装し,最終的に,それらの技術を利用した実際に役立つ画像認識応用システムを実装することを目標とする.フレームワークは,PythonベースのChainerかTensorflowを利用する予定である.(実際には,参加者のやる気と実力に応じて課題を設定することになります.TA中心で実施します.)
DeepLearningで画像認識に挑戦!(柳井)
DeepLearningで画像認識に挑戦!担当:柳井 (J科・Ⅰ類メディア)
• CEDのGPUを用いて,Deep Learning による画像認識プログラミングを行う.
• Pythonベースのフレームワーク(Chainer/Tensorflow)を利用.
•基本的なシステム(右図)を実装し,最後に,新しい応用システムを実装.
大規模画像データ
UEC-Food100/256GPU計算機
ディープラーニング
1) n02129165 lion2) n02111129 Leonberg3) n02108551 Tibetan mastiff4) n02492660 howler monkey5) n02114712 red wolf
大規模1000種類画像認識
画像領域分割
画像説明文自動生成