Your SlideShare is downloading. ×
0
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
プログラミング方法論第13回
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

プログラミング方法論第13回

1,470

Published on

SFC プログラミング方法論第13回 2013年7月8日の講義資料

SFC プログラミング方法論第13回 2013年7月8日の講義資料

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,470
On Slideshare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. プログラミング方法論 第13回 人力プログラミング 橋本 翔(教育実習)
  • 2. 橋本翔(28) • 教育実習生 • SFC博士課程 (増井研究室) • 実世界インタフェース • 分散並列/Webプログラミング • 趣味:プログラミング、料理 @shokai
  • 3. 教育実習 • 博士号を取るのに必要 • 何言ってるかわからない時は止めてく ださい • チャットを使おうと思う • http://chat.shokai.org/
  • 4. 人力プログラミング • 人間をプログラムに組み込む • 人間を関数のように扱う • ソフトウェアが苦手な事は人間が分担する
  • 5. 人間の方が得意な事 • パターン認識、間違い探し • 個人の趣味趣向の判定 • インターネットにない情報 • 実世界情報、おいしい店、綺麗な景色 • 使いにくいシステムや、人に頼んだほうが速い仕事 • 親に頼まれてビデオ録画の設定をする
  • 6. CAPTCHA
  • 7. reCAPTCHA • OCRの補正に 流用
  • 8. インターネットパトロール
  • 9. エンゲルバートのデモ • マウスとウィンドウシステムの発明デモ • 中に人が10人以上入っていたとのこと
  • 10. 重要な物を判定 • Googleはよくクリックされるページが上 に行く • みんなが良いと言ったページは面白い? • よく開くファイルは重要なファイル? • みんなが持っているファイルは重要?
  • 11. StumbleUpon • ページに対して「良い」「悪い」を入 力するブラウザ拡張を導入 • ある程度学習すると、面白いページば かり表示させられる
  • 12. last.fm • 音楽を聞くだけで趣味が解析される • スキップボタンで学習するらしい
  • 13. 集合知 • collective intelligence • wikipediaなど
  • 14. 人力検索
  • 15. どう書く?org • http://ja.doukaku.org • お題を色々なプログラム言語で解く • 各言語で同じ問題を解くアルゴリズムが集まる • コードを書く→他の言語への翻訳・・もやろう としていたようだ
  • 16. Amazon Mechanical turk • 仕事依頼のクラウドサービス • どの写真が一番写りが良いか?など
  • 17. CrowdForge • 文章をAmazon Mechanical Turkで 添削 • 適切な部分で分 割し、結合まで やってくれる • map/reduce
  • 18. 昔デンマークで見たゲーム • 観客をカメラで画像認識してpongを操 作する • と、みせかけて途中から逆にpongで観 客が操作される
  • 19. 人間をアルゴリズムの 一部に取り入れる • 機械学習のフィードバック • 使ってもらうのに工夫が必要 • 楽しく使ってもらう • あるいは何もしていないのに使えてい る状態にする
  • 20. Tumblr dashboard • 人間をフィルタに して多段連結
  • 21. 顔認識 • 顔認識は学習が面倒 • データが少ないと間違う
  • 22. Facebookの顔認識 • 顔を学習させる • 相手に通知され る • つらくない学習
  • 23. レシピサイト • レシピを共有 • レビュー、作ったよレポート等で洗練 されていく • 遺伝的プログラミングに似ている
  • 24. lang-8 • 外国語を勉強したい人同士が日記などを添削し あうサイト • 人間は、間違っていると直したくなるもの • 添削ランキングがすぐに反映されるようにした ら添削率が上がった • http://blog.livedoor.jp/sasata299/archives/ 51898602.html • フィードバック速度重要
  • 25. 写真の位置登録 • ズレているとつい直したくなる
  • 26. Gunosy • 普通にTwitter やFacebookを 使っているだ けで学習して くれる
  • 27. アルゴリズムと組み合わせる • レコメンド • クラスタリング • 決定木 • SVM • ニューラルネット • ベイズ
  • 28. エンドユーザープログラミング • ユーザーにプログラムさせた方が良い場合が ある • 目覚まし • ビデオデッキ • UserScript • UserStyleSheet
  • 29. Userscriptやブラウザ拡張 • ユーザーがWebページを制御 • UIを変えたり • 無限スクロール • 他のページの情報を読み込んだり • SBMの評判を表示
  • 30. シリアスゲーム・ゲーミ フィケーション • ゲームでゲーム外の問題を解決
  • 31. タンパク質構造解析ゲーム • foldit
  • 32. 遺伝子構造解析ゲーム • Phylo
  • 33. 人間と機械に互換性 があるシステム • プログラムにも人間にも読めるフォー マットで出力する
  • 34. RSS/Atom • 専用アプリで 読む • Webサービス 間のインフラ になっている
  • 35. Twitter bot
  • 36. Twitter bot (JSON出力)
  • 37. 「ホワイトハウスで爆発」 偽ツイートで株価急落 • 人間に得意なこと=最新のニュース情報など • をプログラムに取り入れた結果の事故
  • 38. 人間のbotが混ざっても良い • botを書きやすく するツールがあ る • “Tw”など
  • 39. Amazonマーケットプレイス • 買う側はamazon.co.jpから買える • 中古の物だけ中古業者にメールが飛ぶ • 中古業者とAmazon倉庫が互換性を持つよう にwrapされている
  • 40. SFでよくある • ゲームをしていたと思ったら、宇宙人 と戦争していた
  • 41. BabaScript コンピュータが得意な事はコンピュータが、 人間が得意な事は馬場くん  がやってくれる言語 @takumibaba
  • 42. % baba -e 'アイス買ってきて("#{rand 5}本")' baba -e ’コード’ もしくは baba ファイル名
  • 43. 結果
  • 44. res = かず助に行きたい人の出欠取ってください loop do num = res.to_i # 整数に変換 if num > 0 puts では予約してください("#{num}人") exit else res = 残念・・その次の週はどうですか? puts res end end 出欠確認.bb % baba 出欠確認.bb 実行 ただのRuby…ではなく 日本語で書いた部分を馬場君が実行してくれる
  • 45. class Foo def initialize @name = "bar" end end foo = Foo.new foo.instance_eval do puts @name # => "bar" end instance_eval babaコマンドの中身 = instance_eval File.open(fname) do |f| BabaScript::Baba.instance_eval f.read end コードやブロックをそのインスタンスのコンテキストで実行する fooのコンテキストで実行されるので アクセサが無いプロパティ@nameも読める
  • 46. module BabaScript class Baba def self.method_missing(name, *args) ## (略) Androidにnameとargsを送信する end end end Rubyの関数名には日本語が使える → method_missingで全部取れる File.open(fname) do |f| BabaScript::Baba.instance_eval f.read end
  • 47. 人間に命令を送る構文を追 加したプログラム言語 + 人間を関数のように扱える ようになるスマホアプリ → 人間とプログラム言語の 新しい関係
  • 48. 人力プログラミングの工夫 • 人間とプログラムの接続方式 • UIとデータフォーマットに工夫が必要 • 楽しませる、熱中させる • 競争させる、自慢、達成感 • 正しいアルゴリズム
  • 49. 新しいWebサービス • 人間は部品になりたいのではないか? • 大抵のWebサービスは「ある目的を達成する ために人間を部品に取り込んだプログラム」 である、とも言える • 既存のプログラミングモデルの一部分を人間 に置き換えるとWebサービスになる • 目的達成の役割を自分が担うとうれしい • アルゴリズムが正しければ動くのでは?
  • 50. 実習 JavaScriptとRubyによるWeb版Linda入門(3) http://shokai.org/blog/archives/7847

×