10月9日、DevFest Tokyo 2016に行ってきた
その内容をメモメモ
■あいさつ
Google 鈴木さん
東京電機大学の岩井先生
ワールドトレードセンターとか作ってくれた人
東京電機大学、拡大中!採用とか共同研究とか
・Devfestってなに?
GDGコミュニティで世界各地でほら枯れるデベロッパー向けイベント
世界各地で技術者のお祭り
→他の国でもやっている 東京は今日、関西は11月
コミュニティのお祭り:コミュニティが主催
■コミュニティ紹介
・日本androidの会 目的:注目度をあげる→いや、もうあがってる(^^;)
11月19日(土) ABCやるよ!
・Shibuya.apk Androidアプリ開発者のためのコミュニティ
11月22日(火) GMO Yours connpassで募集。キャンセルも多い
16:25~セッション(ライブラリ対談2016)
・DroidKaigi ひつじさん 年次会議
DroidKaigi 2017 セッション公募
マサカリ飛んで来るところではないので、ぜひ
・GCP
GCPUG
・TensorFlowユーザーグループ:10月8日発足!
登録すると、2回目から連絡来る
・Webコミュニティ
html5j
部活動も盛ん
・codelabs紹介
GTUG Girls:初心者向けハンズオン
unity,
・アンカンファレンス
ってなに?
みんなでつくるカンファレンス
話したいことを話す
このあと、セッションを決めるセッションを話す
・Firebaseコミュニティ
ないんです。興味ある人は、こえかけてね!
・お願い
アンカンファレンスとなごみえりあだけ
アンケートに協力してね!
写真係が写真取る
コミニティに入りたかったら、スタッフTシャツ着てる人へ!
コンパスのページ見てね!
まよったら、ハッシュタグ#DevFest16でつぶやけ
■Modern CSS:architecture,future specs and build flow
・自己紹介
・会社紹介
Qiita,Team
・1994年10月10日
CSSが生まれた日(提唱した日、1996年ごろ実装)
CSSは500年後もよめるはず
・最近のCSS:ふえた(まともにつかえないものも)
・CSSで表現できた事は増えたが変わらないこと→こわれる
・CSSの問題点
CSSの基本についてのおさらい
カスケーディング:より下の要素が有効
値が継承されるプロパティ
セレクタの詳細度 #id>.class,[attr]>Element
リファレンスを見ながらかける→すぐに破綻
・問題点
簡単=構文が貧弱:抽象化・構造化できない・グローバル
ルールセット
社会的側面:CSSなめられすぎ
プログラマに敬遠、デザイナーに雑、片手間
CSSはただのWebでざいんでなく
CSSもソフトウェアの一部
・設計手法
1.よいCSSコードを書く
2.既存の手法
3.本質
1.よいCSSコード
・読んで最短
・第三者が読んだとき1人が書いたように
・メンテナンス
・コーディング規約
Google HTML/CSS スタイルガイド
idiomatic CSS
CodeGuide by @mdo
CSS Guidelines(ハリーロバーツ)
・不吉なにおい「Code smiles in CSS] ハリーロバーツより
スタイルの取り消し:スタイル適用が早い、スタイルは付け足すほうがよい
ハードコーディング:% CSSカスタムプロパティーズ
2.既存のCSS設計手法
OOCSS
BEM
ITCSS
・OOCSS:ニコールさりばん
2つの原則
構造と見た目の分離
構造:display,float,width,margin
見た目:background-color,font-weight・・・
コンテンツとコンテナの分離
CSSのセレクタはHTMLの構造に依存すべきでない
れ具を組み立てるようにCSS
・BEM:Block element modifier:Yandex
ページを構成する要素の分割と、その要素の名前を決めるための指針
Block
Element
Modifier
めいめい規則:MindBEMding はりーろばーつ
・ITCSS いんばーてぃっど・とらいあんぐる・CSS(いっくす)
詳細度を上手く管理し、ルールセットの影響範囲を狭くする
詳細度グラフの凹凸:CSSの複雑度を評価する指標
横軸:CSSファイル内のルールセットが存在する位置
スタイルの分割
Settings:Sassなどの変数を使って定義
Tools:MixinやFunction
Objects:草食を含まないレイアウトのパターン
Compornents:装飾を含んだUI要素
Utilities:汎用クラス
3.CEE設計の本質(個人の感想)
どうしたら壊れないか→デザイン理解
「デザインの意図」がわかれば、自然とセレクタ名が決まる
意図を理解すると破綻しにくい
デザイン理解とスタイルの分割
ECSSIST
「CSSの設計手法なんて色々歩けど、自分自身の考え方
CSSの新しい使用
・Flexible Box Layout
柔軟なレイアウト:モダンなブラウザでは使える
Flexboxのモデルの理解が重要
Flexコンテナのプロパティ
Flexアイテムのプロパティ
覚えるこつ:モデルを理解する
注意:Flexboxのバグ(特にIE,Safari)
・CSS カスタムプロパティーズ for カスケーディングバリアブル
IEとEdge以外は使える→Edgeははじめた
--ではじめる任意のプロパティを作れる
注意:カスケーディングの対象、var()の実行
・tabatkins/specs
Nesting,will-changeなど
でもまだまだつかえないんでしょ
つかえますPostCSSを使えば
CSSモダンビルドフロー
・プリプロセッサの利用が当たり前
SassLessStylus
→PostCSSでできるよ!
Node.js製CSSパーザー
CSSパーサーとAPIを提、すべてプラグインが担当
プリプロセッサーとしてのPostCSS
言語拡張用プラグイン:cssnext
メリット
必要な機能、カスタマイズ容易、パフォーマンス
その他のCSSプラグイン
autoprefixer
Can I Useのデータを参照
Cssnano
stylelint csslint
stylefmt
PostCSS.parts
■初心者のためのRxJava
・Androidアプリ開発
(ReactiveExtention)のJava実装
Reactive Programmingとは
定義あいまい:環境からリアクティブ
データフローを定義して、
・従来のプログラミング
トランスフォーメーション
A=2;
B=3;
C=(A+1)x(B-1)
リアクティブ
AとBとCの関係を定義してから、値を入れる
・なぜ、Androidアプリ開発でRPが注目されるのか
コールバックを渡す
1画面1アクティビティ→生きているかどうかチェック
UIスレッド
→全部マネージするのは大変
データのフローを定義
・RXとは
非同期とイベントベース
サブスクライブ→オブザーブ
さいごコンプリート
observable:サブスクライブできる
subscriber
composing
ダブルタップ
operatorについて
リストなら・・
.filter
.map
イベントリストも同じように
・RXJavaで何が出来るの
非同期処理
UIイベント処理
非同期+UIイベント処理
flatMap
・UIイベント処理
RxJavaを使わなくても・・・
状態変数を持たなくていい
非同期+UIイベント
非同期処理
カウント0になったら結果表示
メリット
・イベントや非同期処理が扱いやすい
デメリット
・直感的とは限らない。使いこなすには慣れが必要
・ワナがある(仕組みを理解していないと)
なぜ学習コストが高いのか
・オペレーターがたくさんある
・ややこしい概念
学習法
・ドキュメント
ReactiveX/RxJava Wiki
Introduction to Rx
・オペレーターの動きを心で理解する
RxJSで試す
ES2015(BABEL)
ラムダしき使える
・オペレーターのカテゴリを知る
1つ以上のObservableを使いたい?・・・
・ライブラリを利用する
たいていのものは、ライブラリにある
どうしてもない場合はObservable.fromX()を使う
fromEmitter()
・楽しむ
頭の使い方が異なる
android-jp slackへ
RxJavaのこれから
・RxJava 2.0 RC2
・Reactive Streamsベース
・Reactive Streams
Java9での標準化
参考文献
Speakersデッキみてね
JJUGないとセミナー
Rxバインディングでビュー周り
ジャッジの境目:個人的には、UI+非同期
ユニットテスト:スケジューラーが問題になる
→フックポイント
→2.0で改善
テストサブスクライバー
これからRxJava:勉強なら2.0、開発の場合、まだ対応していないことも
■エンジニアとして知っておくと幸せになれる(かもしれない)機械学習とTensorFlowのこと
資料は公開済み:https://goo.gl/o8gBB1
・自己紹介
・TensorFlowUserGroupについて
meet up は公開3時間で満席
https://goo.gl/NzrHei つくりました
・最近、機械学習とか人工知能がものすごいブームですね
・人工知能すごい!というイメージ
自動運転 alpha go 簡単に使えそうな雰囲気
・結果こういうながれ
人工知能をやりたまえ
APIあるじゃない
APIをつかってみる
ビジネスニーズにフィットしない
スクラッチでやるしか
機械学習むずい
最近の80%は困ってる?
・人工知能がキーワード、使えそうな案件、プレッシャー、興味
・エンジニアも機械学習っぽい話
・入門編に近い話:わかった気になる
・まずは、機械学習
よくあるはなし
機械学習とか分析を勉強したい
データサイエンティストにきけば
そもそも、どうやって勉強?
・Step1
賢いブラックボックスとして使う
→おもしろくない
・Step2
用途別に呼びだす手法を判断できる
用途別のアルゴリズムの選択 scikit-learn algorithm cheet-sheet
→私の考えているものとは違う
・Step3
得られた結果の判断とパラメーターのチューニング
デモサイトある
https://playground.tensorflow.org
入力を加工する
結果を見て、今のパラメータがよいかを判断
赤いところを問題にあわせて、いい感じに調整する
異なるアルゴリズム
→難易度上がりすぎ
・Step3以降に行くには
数学から逃げずに、硬派な本を読む
機械学習理論入門
Python機械学習プログラミング
・深層学習
いままで:アルゴリズムが扱えるデータフォーマット変換
フィーチャーエンジニアリング
→ここをどれだけがんばるかが結果に大きく影響を与える
ここは深層学習は楽
→でもパラメーターチューニングが難しい
Inception-V3
ImageNetという画像分類のベンチマークにGoogleが発案したモデル
・Step4以降の話しには行かずにTensorFlowのお話
・TensorFlowとは
Googleによって2015年11月に公開されたオープンソース
Google内部で多数の使用実績があるらしい
・Tensorflowは深層学習に特化したツールである
データフローグラフを利用した数値計算のためのオープンソースの
ソフトウェアライブラリである
・入力から出力まで、グラフを意識しながら処理を記述して、
最後にどぴゃっと実行する
→後発の分散処理エンジン
・TensorFlowのパラダイム
はじめにテンソルの演算グラフを作る
グラフの実行単位をセッションという
定数・変数・プレースホルダーを宣言できる
作ったグラフはデバイスに展開して実行する
分散処理も可能である
・ここだけ押さえれば
1+2=3の足し算
カウントアップ
プレースホルダー:いろんな値を入力する
→入力を外から外挿できる
セッション
高ランクなテンソルの話
ここまでの話を多次元の値に拡張できる
ランク0:すから
らんく1:べくとる
らんく2:ぎょうれつ
らんく3;3次元配列
:
・TensorFlowで押さえるべき基本は以上です
・深層学習について
多層構造のニューラルネットワークを用いた機械学習である
tensorFlow(正確には機械学習全般)で屋ry場合の深層学習
入力 途中の演算 アルゴリズムからの出力 理想的な出力値
フィードバック
学習結果
・中間層が3層だと
irisを使っている→4次元
重み、バイアス、活性化関数を定義:4次元で10個
重み、バイアス、活性化関数を定義:20個
重み、バイアス、活性化関数を定義:さいごは3つに分けたいので3個
学習:いい感じに収束するようにtf.Variableの値を探すこと
・TensorFlowに関する事実
こういう評価
Chainerよりつかいにくい・・・
→Googleは数学わかる!
・tf.contrib.learn(旧skflow)
グラフなどを意識
keras 深層学習用のDSL
・なんとなく、この流れはHadoopと同じ
生のMapReduceX→Hive
・CloudMLの話もすこし
CloudMLでできること
マシンパワーがたくさん使えるので、分散処理や
ローカルで動かす:CloudMLも絡めたワークフロー
深層学習が普及していくとかなりのキラーコンテンツ
・もう一度告知
・しつもん TensorFlowのSpark対応
■WebGL事例とアニメーションのアイデア
・実務的なテクニックはあまり語られません
・事例の説明と、主観的に面白いかどうかみたいな話
・自己紹介
・プログラムを使って面白い画像を作りたい
・いろいろWebGLで作ってきました
WebGL+three.js
プラグインなしでHTML5のCanvasに
→PC,スマホのブラウザで3Dが動く
手軽
ウェブに公開できる
three.js
WebGLのラッパー
簡単さと奥深さの両立
作ったもの
ネイマールのやばい技を残す
しんごじら:あなたもゴジラになれる
個人サイト
WebGLでリアクティブなVJ
DMM VRシアター
音に反応・透明なスクリーン
前面スクリーンと背景スクリーン
マイクで入力:
Socket.ioで同期
・なぜつくるのか
クリエーティブコーディング
ジェネラティブアート
「ジェネラティブデザイン」という本
コードだから出来るグラフィックの美しさやたたづまい
ジョン前田
教え子がProcessing
モリサワのポスター
中村勇吾 えことのは
プログラミングでアニメーションやグラフィックを作るのは楽しい
・面白いポイントベスト5
面白ポイント1:データによって駆動する
データ化できるものをコンピューターに入れて、アニメーションを作る
複雑なデータをすばやくアニメーションに変換
例:データのビジュアライズ
フライトパターン:
面白ポイント2:乱数
コンピューターといえば無機的?
しかし乱数はとらえどころのない生き物
例:ランダムに動くへたくそストローク
ランダムなコラージュ
偶発性
面白ポイント3:パラメータ化
どこまでの範囲で変数にするか
簡単に多くのバリエーションが作れる
BEYONDCODE
大量に出す、パリエーション
面白ポイント4:アルゴリズム
手順の定式化
アルゴリズム・数学の直結 BOIDS
アルゴリズムが可視化されるとさらに面白い
考え方が動き出す:佐藤雅彦
Housefly
スピログラフ
面白ポイント5:コラージュ
ライブラリの寄せ集め
組み合わせの妙
実写+ジェネラティブアート
モザイク画+絵文字+動画
異なる文脈どうしが組みあわさることによって
SPEACE_TAKAMI 高見盛と宇宙の組み合わせ
一番よくないのがウマヘタ
WebGLは手軽だし高速VJもできる
コードで動かすアニメーションは面白い
その内容をメモメモ
■あいさつ
Google 鈴木さん
東京電機大学の岩井先生
ワールドトレードセンターとか作ってくれた人
東京電機大学、拡大中!採用とか共同研究とか
・Devfestってなに?
GDGコミュニティで世界各地でほら枯れるデベロッパー向けイベント
世界各地で技術者のお祭り
→他の国でもやっている 東京は今日、関西は11月
コミュニティのお祭り:コミュニティが主催
■コミュニティ紹介
・日本androidの会 目的:注目度をあげる→いや、もうあがってる(^^;)
11月19日(土) ABCやるよ!
・Shibuya.apk Androidアプリ開発者のためのコミュニティ
11月22日(火) GMO Yours connpassで募集。キャンセルも多い
16:25~セッション(ライブラリ対談2016)
・DroidKaigi ひつじさん 年次会議
DroidKaigi 2017 セッション公募
マサカリ飛んで来るところではないので、ぜひ
・GCP
GCPUG
・TensorFlowユーザーグループ:10月8日発足!
登録すると、2回目から連絡来る
・Webコミュニティ
html5j
部活動も盛ん
・codelabs紹介
GTUG Girls:初心者向けハンズオン
unity,
・アンカンファレンス
ってなに?
みんなでつくるカンファレンス
話したいことを話す
このあと、セッションを決めるセッションを話す
・Firebaseコミュニティ
ないんです。興味ある人は、こえかけてね!
・お願い
アンカンファレンスとなごみえりあだけ
アンケートに協力してね!
写真係が写真取る
コミニティに入りたかったら、スタッフTシャツ着てる人へ!
コンパスのページ見てね!
まよったら、ハッシュタグ#DevFest16でつぶやけ
■Modern CSS:architecture,future specs and build flow
・自己紹介
・会社紹介
Qiita,Team
・1994年10月10日
CSSが生まれた日(提唱した日、1996年ごろ実装)
CSSは500年後もよめるはず
・最近のCSS:ふえた(まともにつかえないものも)
・CSSで表現できた事は増えたが変わらないこと→こわれる
・CSSの問題点
CSSの基本についてのおさらい
カスケーディング:より下の要素が有効
値が継承されるプロパティ
セレクタの詳細度 #id>.class,[attr]>Element
リファレンスを見ながらかける→すぐに破綻
・問題点
簡単=構文が貧弱:抽象化・構造化できない・グローバル
ルールセット
社会的側面:CSSなめられすぎ
プログラマに敬遠、デザイナーに雑、片手間
CSSはただのWebでざいんでなく
CSSもソフトウェアの一部
・設計手法
1.よいCSSコードを書く
2.既存の手法
3.本質
1.よいCSSコード
・読んで最短
・第三者が読んだとき1人が書いたように
・メンテナンス
・コーディング規約
Google HTML/CSS スタイルガイド
idiomatic CSS
CodeGuide by @mdo
CSS Guidelines(ハリーロバーツ)
・不吉なにおい「Code smiles in CSS] ハリーロバーツより
スタイルの取り消し:スタイル適用が早い、スタイルは付け足すほうがよい
ハードコーディング:% CSSカスタムプロパティーズ
2.既存のCSS設計手法
OOCSS
BEM
ITCSS
・OOCSS:ニコールさりばん
2つの原則
構造と見た目の分離
構造:display,float,width,margin
見た目:background-color,font-weight・・・
コンテンツとコンテナの分離
CSSのセレクタはHTMLの構造に依存すべきでない
れ具を組み立てるようにCSS
・BEM:Block element modifier:Yandex
ページを構成する要素の分割と、その要素の名前を決めるための指針
Block
Element
Modifier
めいめい規則:MindBEMding はりーろばーつ
・ITCSS いんばーてぃっど・とらいあんぐる・CSS(いっくす)
詳細度を上手く管理し、ルールセットの影響範囲を狭くする
詳細度グラフの凹凸:CSSの複雑度を評価する指標
横軸:CSSファイル内のルールセットが存在する位置
スタイルの分割
Settings:Sassなどの変数を使って定義
Tools:MixinやFunction
Objects:草食を含まないレイアウトのパターン
Compornents:装飾を含んだUI要素
Utilities:汎用クラス
3.CEE設計の本質(個人の感想)
どうしたら壊れないか→デザイン理解
「デザインの意図」がわかれば、自然とセレクタ名が決まる
意図を理解すると破綻しにくい
デザイン理解とスタイルの分割
ECSSIST
「CSSの設計手法なんて色々歩けど、自分自身の考え方
CSSの新しい使用
・Flexible Box Layout
柔軟なレイアウト:モダンなブラウザでは使える
Flexboxのモデルの理解が重要
Flexコンテナのプロパティ
Flexアイテムのプロパティ
覚えるこつ:モデルを理解する
注意:Flexboxのバグ(特にIE,Safari)
・CSS カスタムプロパティーズ for カスケーディングバリアブル
IEとEdge以外は使える→Edgeははじめた
--ではじめる任意のプロパティを作れる
注意:カスケーディングの対象、var()の実行
・tabatkins/specs
Nesting,will-changeなど
でもまだまだつかえないんでしょ
つかえますPostCSSを使えば
CSSモダンビルドフロー
・プリプロセッサの利用が当たり前
SassLessStylus
→PostCSSでできるよ!
Node.js製CSSパーザー
CSSパーサーとAPIを提、すべてプラグインが担当
プリプロセッサーとしてのPostCSS
言語拡張用プラグイン:cssnext
メリット
必要な機能、カスタマイズ容易、パフォーマンス
その他のCSSプラグイン
autoprefixer
Can I Useのデータを参照
Cssnano
stylelint csslint
stylefmt
PostCSS.parts
■初心者のためのRxJava
・Androidアプリ開発
(ReactiveExtention)のJava実装
Reactive Programmingとは
定義あいまい:環境からリアクティブ
データフローを定義して、
・従来のプログラミング
トランスフォーメーション
A=2;
B=3;
C=(A+1)x(B-1)
リアクティブ
AとBとCの関係を定義してから、値を入れる
・なぜ、Androidアプリ開発でRPが注目されるのか
コールバックを渡す
1画面1アクティビティ→生きているかどうかチェック
UIスレッド
→全部マネージするのは大変
データのフローを定義
・RXとは
非同期とイベントベース
サブスクライブ→オブザーブ
さいごコンプリート
observable:サブスクライブできる
subscriber
composing
ダブルタップ
operatorについて
リストなら・・
.filter
.map
イベントリストも同じように
・RXJavaで何が出来るの
非同期処理
UIイベント処理
非同期+UIイベント処理
flatMap
・UIイベント処理
RxJavaを使わなくても・・・
状態変数を持たなくていい
非同期+UIイベント
非同期処理
カウント0になったら結果表示
メリット
・イベントや非同期処理が扱いやすい
デメリット
・直感的とは限らない。使いこなすには慣れが必要
・ワナがある(仕組みを理解していないと)
なぜ学習コストが高いのか
・オペレーターがたくさんある
・ややこしい概念
学習法
・ドキュメント
ReactiveX/RxJava Wiki
Introduction to Rx
・オペレーターの動きを心で理解する
RxJSで試す
ES2015(BABEL)
ラムダしき使える
・オペレーターのカテゴリを知る
1つ以上のObservableを使いたい?・・・
・ライブラリを利用する
たいていのものは、ライブラリにある
どうしてもない場合はObservable.fromX()を使う
fromEmitter()
・楽しむ
頭の使い方が異なる
android-jp slackへ
RxJavaのこれから
・RxJava 2.0 RC2
・Reactive Streamsベース
・Reactive Streams
Java9での標準化
参考文献
Speakersデッキみてね
JJUGないとセミナー
Rxバインディングでビュー周り
ジャッジの境目:個人的には、UI+非同期
ユニットテスト:スケジューラーが問題になる
→フックポイント
→2.0で改善
テストサブスクライバー
これからRxJava:勉強なら2.0、開発の場合、まだ対応していないことも
■エンジニアとして知っておくと幸せになれる(かもしれない)機械学習とTensorFlowのこと
資料は公開済み:https://goo.gl/o8gBB1
・自己紹介
・TensorFlowUserGroupについて
meet up は公開3時間で満席
https://goo.gl/NzrHei つくりました
・最近、機械学習とか人工知能がものすごいブームですね
・人工知能すごい!というイメージ
自動運転 alpha go 簡単に使えそうな雰囲気
・結果こういうながれ
人工知能をやりたまえ
APIあるじゃない
APIをつかってみる
ビジネスニーズにフィットしない
スクラッチでやるしか
機械学習むずい
最近の80%は困ってる?
・人工知能がキーワード、使えそうな案件、プレッシャー、興味
・エンジニアも機械学習っぽい話
・入門編に近い話:わかった気になる
・まずは、機械学習
よくあるはなし
機械学習とか分析を勉強したい
データサイエンティストにきけば
そもそも、どうやって勉強?
・Step1
賢いブラックボックスとして使う
→おもしろくない
・Step2
用途別に呼びだす手法を判断できる
用途別のアルゴリズムの選択 scikit-learn algorithm cheet-sheet
→私の考えているものとは違う
・Step3
得られた結果の判断とパラメーターのチューニング
デモサイトある
https://playground.tensorflow.org
入力を加工する
結果を見て、今のパラメータがよいかを判断
赤いところを問題にあわせて、いい感じに調整する
異なるアルゴリズム
→難易度上がりすぎ
・Step3以降に行くには
数学から逃げずに、硬派な本を読む
機械学習理論入門
Python機械学習プログラミング
・深層学習
いままで:アルゴリズムが扱えるデータフォーマット変換
フィーチャーエンジニアリング
→ここをどれだけがんばるかが結果に大きく影響を与える
ここは深層学習は楽
→でもパラメーターチューニングが難しい
Inception-V3
ImageNetという画像分類のベンチマークにGoogleが発案したモデル
・Step4以降の話しには行かずにTensorFlowのお話
・TensorFlowとは
Googleによって2015年11月に公開されたオープンソース
Google内部で多数の使用実績があるらしい
・Tensorflowは深層学習に特化したツールである
データフローグラフを利用した数値計算のためのオープンソースの
ソフトウェアライブラリである
・入力から出力まで、グラフを意識しながら処理を記述して、
最後にどぴゃっと実行する
→後発の分散処理エンジン
・TensorFlowのパラダイム
はじめにテンソルの演算グラフを作る
グラフの実行単位をセッションという
定数・変数・プレースホルダーを宣言できる
作ったグラフはデバイスに展開して実行する
分散処理も可能である
・ここだけ押さえれば
1+2=3の足し算
カウントアップ
プレースホルダー:いろんな値を入力する
→入力を外から外挿できる
セッション
高ランクなテンソルの話
ここまでの話を多次元の値に拡張できる
ランク0:すから
らんく1:べくとる
らんく2:ぎょうれつ
らんく3;3次元配列
:
・TensorFlowで押さえるべき基本は以上です
・深層学習について
多層構造のニューラルネットワークを用いた機械学習である
tensorFlow(正確には機械学習全般)で屋ry場合の深層学習
入力 途中の演算 アルゴリズムからの出力 理想的な出力値
フィードバック
学習結果
・中間層が3層だと
irisを使っている→4次元
重み、バイアス、活性化関数を定義:4次元で10個
重み、バイアス、活性化関数を定義:20個
重み、バイアス、活性化関数を定義:さいごは3つに分けたいので3個
学習:いい感じに収束するようにtf.Variableの値を探すこと
・TensorFlowに関する事実
こういう評価
Chainerよりつかいにくい・・・
→Googleは数学わかる!
・tf.contrib.learn(旧skflow)
グラフなどを意識
keras 深層学習用のDSL
・なんとなく、この流れはHadoopと同じ
生のMapReduceX→Hive
・CloudMLの話もすこし
CloudMLでできること
マシンパワーがたくさん使えるので、分散処理や
ローカルで動かす:CloudMLも絡めたワークフロー
深層学習が普及していくとかなりのキラーコンテンツ
・もう一度告知
・しつもん TensorFlowのSpark対応
■WebGL事例とアニメーションのアイデア
・実務的なテクニックはあまり語られません
・事例の説明と、主観的に面白いかどうかみたいな話
・自己紹介
・プログラムを使って面白い画像を作りたい
・いろいろWebGLで作ってきました
WebGL+three.js
プラグインなしでHTML5のCanvasに
→PC,スマホのブラウザで3Dが動く
手軽
ウェブに公開できる
three.js
WebGLのラッパー
簡単さと奥深さの両立
作ったもの
ネイマールのやばい技を残す
しんごじら:あなたもゴジラになれる
個人サイト
WebGLでリアクティブなVJ
DMM VRシアター
音に反応・透明なスクリーン
前面スクリーンと背景スクリーン
マイクで入力:
Socket.ioで同期
・なぜつくるのか
クリエーティブコーディング
ジェネラティブアート
「ジェネラティブデザイン」という本
コードだから出来るグラフィックの美しさやたたづまい
ジョン前田
教え子がProcessing
モリサワのポスター
中村勇吾 えことのは
プログラミングでアニメーションやグラフィックを作るのは楽しい
・面白いポイントベスト5
面白ポイント1:データによって駆動する
データ化できるものをコンピューターに入れて、アニメーションを作る
複雑なデータをすばやくアニメーションに変換
例:データのビジュアライズ
フライトパターン:
面白ポイント2:乱数
コンピューターといえば無機的?
しかし乱数はとらえどころのない生き物
例:ランダムに動くへたくそストローク
ランダムなコラージュ
偶発性
面白ポイント3:パラメータ化
どこまでの範囲で変数にするか
簡単に多くのバリエーションが作れる
BEYONDCODE
大量に出す、パリエーション
面白ポイント4:アルゴリズム
手順の定式化
アルゴリズム・数学の直結 BOIDS
アルゴリズムが可視化されるとさらに面白い
考え方が動き出す:佐藤雅彦
Housefly
スピログラフ
面白ポイント5:コラージュ
ライブラリの寄せ集め
組み合わせの妙
実写+ジェネラティブアート
モザイク画+絵文字+動画
異なる文脈どうしが組みあわさることによって
SPEACE_TAKAMI 高見盛と宇宙の組み合わせ
一番よくないのがウマヘタ
WebGLは手軽だし高速VJもできる
コードで動かすアニメーションは面白い