「ディープラーニングを利用したプロダクト考案」の雑ログ

概要

  • とりまディープラーニングの勉強 一段落
  • ディープラーニングを使って何かプロダクトを作りたい
  • イデアすぐに思い浮かばん
  • プロダクトを考案しよう
  • あーだこーだ調べたり考えたり
  • 考案した
    • 任意の入力映像に対して、自分がどこに視線を向けるかの推論システム

背景

  • とりまディープラーニングの勉強 一段落
    • 理論理解はまだ必要だろうけど
    • 最新の論文とかも
  • 使って何かつくりたい
  • イデア浮かばん

目的

方法

  • 既存のアイデアを見る
  • 課題 課題予定を挙げる
    • 社会
    • 周り
  • 俺のデータを利用してできること
  • 既存のビッグデータを利用してできること
  • とりあえずで思いつくのを列挙
  • 挙げたものから選ぶ

実行

  • 既存のアイデアを見る
  • 課題 課題予定と、その解決方法
    • 社会
      • 北朝鮮
        • 相互理解
        • 不一致ならば戦争以外の勝負
      • ポピュリズム
      • 偽情報
        • メディア間の違いの可視化
        • メディアの傾向分析
        • メディアの内情把握
      • 復興
      • 廃炉
      • 少子高齢化
      • 年金
      • 人手不足
      • 不健全財政
      • 首都直下型地震
      • 長時間労働
        • 効率の可視化
        • 改善の怠惰
        • ゴリ押し
        • 囚われ
      • 不合理
      • 過疎化
        • マッチング
        • 周知
      • 無知
      • 善悪正義の相違
        • 可視化
        • ネット上の個々人の意見の傾向の可視化
          • SNSなどで同一発信者からの発信内容を収集
          • ブクマ先の文脈 : ブクマコメント
          • ユーザから権限もらって可視化
        • 自動全力肯定/批判器
      • 生産と分配のアンバランス
        • 消費や投資に関するコスパ認識力の向上
      • 希望
        • 無理しなくていいという価値観の押し付け?
      • ITスキル格差
        • どう役に立つかの伝達
        • 使い方の伝授 補助
        • 有用なインタフェース
      • 初期値の不平等
        • 優れたものはその優れた能力を、優れてないもののためにのみ発揮すべき という価値観の押し付け?
      • 政府と国民との意思疎通の不出来
        • 政府の実情を可視化 平易な表現で概括 国民の心に届くように翻訳
        • 国民の声を可視化
      • 身体能力の虚弱
        • 身体の理解と原因特定 対策 焦らず長期的
        • 生活習慣是正のための自身へのバイアス圧力
      • ストレスへの耐性不足
        • 現状把握 耐性充足定義 理解 原因特定 原因排除
        • ストレッサーとストレス程度の記録
      • 過敏
      • 暑がり
        • 冷却システム構築?
      • 体調コントロール
      • 自己査定 能力の程度
        • ゴーストダビング ネット上に放つ 反響を観測
      • 図書館 騒音
      • 普遍的な被迷惑度 与迷惑度の把握
      • 干渉の費用対効果の把握
      • 干渉の加減
      • 退避行動のコスパ把握
      • 局所的普遍性の把握
    • 周り
      • 主観画質評価
        • データさえあればいけそうだな
      • 近所同士の疎遠
      • 多分平気だろうからの交通事故
        • 過去の事故履歴を、それが起きた場所にARで表示
      • 電車での座席への座り方 心理距離 需要 供給
      • 人混みでの歩行ルート 衝突予測 自動自分運転
      • 第三者による客観的助言 補助 支援
      • 無意識特性の知覚
      • 目的達成の方法を列挙
      • 要件定義
      • 疲労度の把握
      • 自問自答支援
      • 曖昧度の客観指標
  • 俺のデータを利用してできること
    • どんなデータがある?
      • 身体センサー
        • wikipedia 現在までに知られている主な感覚
          • 体性感覚
            • 表在感覚(皮膚感覚)
              • 触覚(触れた感じ)
              • 温覚(暖かさ)
              • 冷覚(冷たさ)
              • 痛覚(痛さ)
              • 食感
              • くすぐったさ
              • など
            • 深部感覚
              • 運動覚(関節の角度など)
              • 圧覚(押さえられた感じ)
              • 深部痛
              • 振動覚
          • 内臓感覚
            • 臓器感覚(吐き気など)
            • 内臓痛
          • 特殊感覚
            • 視覚
            • 聴覚
            • 味覚
            • 嗅覚
            • 前庭感覚・平衡感覚
        • モノ寄り
          • メモ
          • 成績
          • アカウントのID PW
          • 人間関係
          • 価値観
          • 時空間 情報空間をまたいだ視野とその濃度
          • バランス感覚
            • 優先順位のつけ方
            • 取捨選択
          • 記憶
          • 連想
          • 身体情報
            • 体重
            • 体脂肪率
            • 年齢
            • 血液検査
            • 知能検査
            • 健康診断
            • MRI
            • 脳波
            • 聴覚検査
            • 空腹度
            • 満腹度
            • 精神状態
            • 健康度
            • 生活習慣チェックシート
          • 地獄という経験
          • 所有物
          • ツイートライン上の各々のツイートへの興味関心
          • 俺という人間の貸借対照表
          • 好み
            • ゲーム
            • 音楽
            • 食べ物
            • etc
        • コト寄り
          • 履歴
            • ネットの閲覧
            • 発信
            • コミット
            • 学習
            • タスク遂行
            • 購買
            • ニコ動の視聴 NGワード マイリス フォロー
            • 生活
              • 飲食
              • 運動
              • 知的活動
              • 休息
              • 睡眠
              • 移動
              • 労働
              • 交流
            • 記事の閲読
              • 目の走らせ方
              • 感想
              • 想起 照合する記憶
              • シェア欲求の程度
            • 自問自答
            • ポジティブ反応
            • ネガテイブ反応
          • 視線
            • どこに向けるか
            • どんな視線を感じるか
          • 思考
          • 自己査定の過程
          • 世界認識
          • 自己認識
          • 他者の思考の類推
          • 意志 知能 感情
          • 無意識衝動
    • 正確かつ大量に記録できそう/できたもので、有用そうなのはどれ?
      • 視覚
      • 視線の向け方
      • 聴覚
      • 表情
      • 身体のGPS位置
      • 身体の動き
      • 自問自答の過程(大量は無理くね?
        • 世界認識
        • 自己認識
    • 何ができる?
      • 任意の入力映像に対して、自分がどこに視線を向けるかの推論システム
      • 任意の問いに対して、自分がどのように答えるかの推論システム
      • #思ったよりたいしたことはできんな
  • 既存のビッグデータを利用してできること
    • 既存のビッグデータを調査
      • 参考
      • ALAGIN 言語資源・音声資源サイト 資源
        • 文脈類似語データベース
        • 動詞含意関係データベース
        • 負担・トラブル表現リスト
        • 日本語を母国語とする60歳以上の話者の読み上げ音声
        • ATRにて開発された、音素バランス文などの文や定形単語を発話内容とする、プロナレータによる多数話者日本語音声データベース。発話内容により、4つセット(Aセット、Bセット、Cセット、Dセット)から構成されている。
        • プロの観光ガイドと、旅行者を模した被験者の2名による対面対話を収録し、書き起こしたデータ。1対話はおよそ、30分であり、ガイドの音声はヘッドセットマイクにより収録。ユーザ音声は、スタンドマイク、またはヘッドセットマイクを用いて収録した。
        • 声優2名による掛け合い収録を行い、2名のうち、1名分について格納したコーパスである。台本の製作にあたっては、京都観光案内対話コーパスから、対話のやり取りが活発な21対話を抽出して書き起こしを行い、台本を製作した。発話ごとに人手で切り出し,無音部分を除いてある。
        • 楽天データ
        • 英日対訳コーパスデータ合計約3億4795万文対
      • 少納言 KOTONOHA 「現代日本語書き言葉均衡コーパス
      • 音声資源コンソーシアム
        • 筑波大 多言語音声コーパス (UT-ML)
        • 東北大‐松下 単語音声データベース (TMW)
        • 会議音声データベース (RWCP-SP01)
        • マルチモーダル音声認識評価環境 (CENSREC-1-AV)
      • IEMOCAP DATABASE
        • Interactive emotional dyadic motion capture database
      • NII 情報学研究データリポジトリ
      • 言語情報処理ポータル
        • 日英中基本文データ
        • 女性のことば・職場編
      • kaggle
        • Shakespeare plays
          • “8”,“Henry IV”,“1”,“1.1.5”,“KING HENRY IV”,“No more the thirsty entrance of this soil”
          • “9”,“Henry IV”,“1”,“1.1.6”,“KING HENRY IV”,“Shall daub her lips with her own children’s blood,”
          • “10”,“Henry IV”,“1”,“1.1.7”,“KING HENRY IV”,“Nor more shall trenching war channel her fields,”
          • “11”,“Henry IV”,“1”,“1.1.8”,“KING HENRY IV”,“Nor bruise her flowerets with the armed hoofs”
        • StarCraft II Replay Analysis
          • “GameID”,“LeagueIndex”,“Age”,“HoursPerWeek”,“TotalHours”,“APM”,“SelectByHotkeys”,“AssignToHotkeys”,“UniqueHotkeys”,“MinimapAttacks”,“MinimapRightClicks”,“NumberOfPACs”,“GapBetweenPACs”,“ActionLatency”,“ActionsInPAC”,“TotalMapExplored”,“WorkersMade”,“UniqueUnitsMade”,“ComplexUnitsMade”,“ComplexAbilityUsed”,“MaxTimeStamp”
          • 52,5,27,10,3000,143.718,0.003515159,0.000219697,5.49e-05,0.000109849,0.000392317,0.004849036,32.6677,40.8673,4.7508,0.000219697,0.0013966,4.71e-05,0,0,127448
          • 55,5,23,10,5000,129.2322,0.003303812,0.000259462,6.92e-05,0.000294057,0.000432436,0.004307064,32.9194,42.3454,4.8434,0.000380544,0.0011935,8.65e-05,0,0.00020757,57812
          • 56,4,30,10,200,69.9612,0.001101091,0.00033557,4.19e-05,0.000293624,0.000461409,0.002925755,44.6475,75.3548,4.043,0.000230705,0.00074455,6.29e-05,0,0.00018876,95360
        • Mental Health in Tech Survey
          • “Timestamp”,“Age”,“Gender”,“Country”,“state”,“self_employed”,“family_history”,“treatment”,“work_interfere”,“no_employees”,“remote_work”,“tech_company”,“benefits”,“care_options”,“wellness_program”,“seek_help”,“anonymity”,“leave”,“mental_health_consequence”,“phys_health_consequence”,“coworkers”,“supervisor”,“mental_health_interview”,“phys_health_interview”,“mental_vs_physical”,“obs_consequence”,“comments”
          • 2014-08-27 11:29:31,37,“Female”,“United States”,“IL”,NA,“No”,“Yes”,“Often”,“6-25”,“No”,“Yes”,“Yes”,“Not sure”,“No”,“Yes”,“Yes”,“Somewhat easy”,“No”,“No”,“Some of them”,“Yes”,“No”,“Maybe”,“Yes”,“No”,NA
          • 2014-08-27 11:29:37,44,“M”,“United States”,“IN”,NA,“No”,“No”,“Rarely”,“More than 1000”,“No”,“No”,“Don’t know”,“No”,“Don’t know”,“Don’t know”,“Don’t know”,“Don’t know”,“Maybe”,“No”,“No”,“No”,“No”,“No”,“Don’t know”,“No”,NA
          • 2014-08-27 11:29:44,32,“Male”,“Canada”,NA,NA,“No”,“No”,“Rarely”,“6-25”,“No”,“Yes”,“No”,“No”,“No”,“No”,“Don’t know”,“Somewhat difficult”,“No”,“No”,“Yes”,“Yes”,“Yes”,“Yes”,“No”,“No”,NA
      • AWS Public Datasets
        • AWS でのランドサット: ランドサット 8号衛星により作成中の地球全土の衛星画像コレクション (解像度は中程度)
        • AWS での SpaceNet: コンピュータビジョンアルゴリズムの開発における革新を促進するために衛星画像とラベリングされたトレーニングデータを集めたデータベース
        • 地勢タイル: 世界各地の地表の標高などの地勢を示すデータセット。簡単に使用できるようタイル化されており、S3 で提供される
        • GDELT: 世界中のすべての国のほぼすべての地域で放送、印刷、およびウェブ配信されているニュースをモニタリングした 2億 5,000 万件近い記録。毎日更新される
        • NAIP: 米国本土で農作物の成長期に撮影される地上分解能 1メートルの航空画像
        • IRS 990 Filings on AWS: 2011 年から現在まで IRS に提出された、特定の電子的な 990 形式から抽出した機械可読データ
        • AWS での NEXRAD: 次世代気象レーダー (NEXRAD) ネットワークからのリアルタイムデータとアーカイブデータ
        • NASA NEX: NASA が保守管理する地球の科学的データセットのコレクション。気候変化予測や地表の衛星画像などが含まれる
        • 共通クロールコーパス: 50 億を超えるウェブページから構成されるウェブクロールデータのコーパス
        • マルチメディアコモンズ: オーディオビジュアル機能と注釈を備えた 1* 億近い画像と動画のコレクション
        • Google ブックスN-gram: Google ブックスN-gram コーパスを含むデータセット
      • facebook Graph API
      • #わりといろいろあるな 制約つきのもあるが
    • 何ができる?
      • やろうと思えば何でもできる?
      • 何を作りたいかを決めてからデータを探すほうがいいな
  • 既存のディープラーニングの成果を利用してできること
    • 既存の成果
      • 単語を低次元(と言っても200次元程度はある)の実数ベクトルで表現
        • Word2Vec
        • GloVe
        • fastText
      • 線画着色
      • 物体検出
      • 未来映像予測
      • 画像2キャプション
      • キャプション2画像
      • 航空画像→地図画像
      • 灰色画像→カラー画像
      • 日中の画像→夜間の画像
      • 線画→カラー画像
      • 高画質化
      • 自然な音声を生成
      • 音声認識
      • 背景除去
      • 翻訳
      • AlphaGo
      • ポーカー
      • ニューラルネットの生成補助
      • スタイル変換
      • 画像圧縮
      • 読唇術
      • 抽象的な原画(ベタ塗りの絵)から具体的な絵を生成
      • 楽曲生成
      • 太陽フレアの予想
      • セグメンテーション
      • 自動運転
      • ゲームプレイ
      • アイドルの顔画像ジェネレーター
      • ホラー画像を自動生成
      • ロボット操作
      • 認識
      • Unsupervised sentiment neuron
    • 何ができそう?
      • まぁモザイク解除はできるだろうな
      • いまいち思いつかんな
  • 他に思いつくのを列挙
    • ドラえもん
    • 自然な対話
    • はげまし
    • 架空のキャラクターの応答モデル構築 のびた風
    • 画像→その場の匂い、音、まぶしさ、気温などを推測
    • 任意入力に対する無意識的反応モデル
    • 偉人の応答モデル
    • ハゲと非ハゲの境界
  • 挙げたものから選ぶ
    • 候補
      • ネット上の個々人の意見の傾向の可視化
      • 自動全力肯定/批判器
      • 生活習慣是正のための自身へのバイアス圧力
      • ゴーストダビング ネット上に放つ 反響を観測
      • 人混みでの歩行ルート 衝突予測 自動自分運転
      • 任意の入力映像に対して、自分がどこに視線を向けるかの推論システム
      • 任意の問いに対して、自分がどのように答えるかの推論システム
      • はげまし
      • 架空のキャラクターの応答モデル構築 のびた風
      • 画像→その場の匂い、音、まぶしさ、気温などを推測
    • 選択基準
      • 従来のルールベースでは容易でないレベル
      • 社会に貢献し
      • 俺に利益をもたらす
      • 実現の可能性
      • 独創性
    • 選ぶ
      • 自動全力肯定/批判器
      • 人混みでの歩行ルート 衝突予測 自動自分運転
      • 任意の入力映像に対して、自分がどこに視線を向けるかの推論システム
    • 基準を満たしてるか再チェック
      • 自動全力肯定/批判器 サーバル、サーバルオルタ
        • 従来のルールベースでは容易でないレベル
          • 程度によるな 人間味が無くていいならルールベースでもいけるか
        • 社会に貢献し
          • 薬にも毒にもなるな
          • ギャグとか、aiの可能性提示としては価値があるか
        • 俺に利益をもたらす
          • 利益はあるだろう 多かれ少なかれ
        • 実現の可能性
          • 程度による
        • 独創性
          • 皆無
          • けもふれで同じこと考える人はやおよろず
      • 人混みでの歩行ルート 衝突予測 自動自分運転
        • 従来のルールベースでは容易でないレベル
          • 空間把握 ルート選択
          • ルールベースの方が適してる気が
        • 社会に貢献し
          • 混雑時に、全員がこれ使えばスムーズになる?
        • 俺に利益をもたらす
          • 多かれ少なかれ
        • 実現の可能性
          • 可能だろう
        • 独創性
          • 割と独創てきかも
      • 任意の入力映像に対して、自分がどこに視線を向けるかの推論システム
        • 従来のルールベースでは容易でないレベル
          • イエス
        • 社会に貢献し
          • ギャグ路線でいけるかも?
          • 視線推論を活用すれば、画像中のroiが分かり、何かに役立つかも
        • 俺に利益をもたらす
          • イエス
          • 名誉?
          • 実績
          • 技術力
        • 実現の可能性
          • 行ける気がする
        • 独創性
          • 視線に関する研究は古くからあるようだ
          • 一般的な人間が、一般的なケースにおいて視線をどう向けるかは、既に明らかだろう 確認してないけど
          • アイコンタクト
          • 嘘をつく時
          • 容姿の良し悪し 男女
          • 自分の視線の向け方をモデル化しようみたいなのは、少しググッただけでは見つからなかった
          • 独創的と言えそうだ
    • これで決まりだ
      • 任意の入力映像に対して、自分がどこに視線を向けるかの推論システム

考察

  • プロダクトを考案できた
    • 任意の入力映像に対して、自分がどこに視線を向けるかの推論システム
  • 色んなビッグデータが、既に結構たくさんあるんやな

「VirtualBox + Ubuntu 16.04 LTS + DockerでPython3の開発環境構築」の雑録

得られた重要な知見

・DockerでPython3の開発環境を構築することができた

・Dockerfile:myDockerfile/my_python_dev_env at master · hyperSuperHoge/myDockerfile · GitHub

・ただし、わざわざDockerまで導入する必要はなく、Miniconda3がすべて解決してくれる

・でも、Dockerを使えるようになったのは収穫だ

 

背景
    ディープラーニング学習
    Pythonの開発環境が欲しくなった
    2.x系と3.x系とで結構違うらしい 環境変数やパッケージ管理も要注意
        http://qiita.com/y__sama/items/5b62d31cb7e6ed50f02c
    手元にはWindows10 & Cygwin のマシン
    現環境を汚したくない
    VirtualBox + Ubuntu 16.04 LTS + Docker で行く
目的
    Python3の開発環境を用意する
        Python3のコード作成・実行・対話
        環境を汚さずに、使い捨てできる形
方法
    VirtualBox
    Ubuntu
    Docker
実行
    VirtualBox
        ok
    Ubuntu
        iso
        VirtualBoxで64bit OSをインストールするには、BIOS設定画面にてCPUの仮想化機能を有効にする必要があった
        sshサーバ インストール
        ポートフォワーディング
        アップデート
        ok
        エラー対処
            エラー
                hoge@hoge-VirtualBox:~$ apt-get update
                W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: 許可されていない操作です)
                E: ロックファイル /var/lib/apt/lists/lock をオープンできません - open (13: 許可がありません)
                E: ディレクトリ /var/lib/apt/lists/ をロックできません
                E: ロックファイル /var/lib/dpkg/lock をオープンできません - open (13: 許可がありません)
                E: 管理用ディレクトリ (/var/lib/dpkg/) をロックできません。root 権限で実行していますか?
            参考
                http://qiita.com/koara-local/items/e63b7e4ff3cea803bdea
            対処
                ロックファイル削除とか
                うんちゃら--configureとか
                install -fとか
            なんとかなった
    Docker
        インストール
            https://docs.docker.com/engine/installation/linux/ubuntu/
            sudo apt-get install -y --no-install-recommends \
                    apt-transport-https \
                    ca-certificates \
                    curl \
                    software-properties-common
            curl -fsSL https://apt.dockerproject.org/gpg | sudo apt-key add -
            apt-key fingerprint 58118E89F3A912897C070ADBF76221572C52609D
            sudo add-apt-repository \
                 "deb https://apt.dockerproject.org/repo/ \
                 ubuntu-$(lsb_release -cs) \
                 main"
            sudo apt-get update
            sudo apt-get -y install docker-engine
            sudo docker run hello-world
        使い方学習
            docker ps -a
            docker ps
            docker run hello-world
            docker images
            vim Dockerfile
                FROM docker/whalesay:latest
                RUN apt-get -y update && apt-get install -y fortunes
                CMD /usr/games/fortune -a | cowsay
            docker build -t docker-whale .
                各行が各レイヤーに対応
                各レイヤーにID
                公式での出力例にも出てるから、debconf: unable to~は問題ないようだ
            docker images
            docker run docker-whale
            Dockerfileがテンプレート、Imageがインスタンス
        使い方学習2
            http://www.mwsoft.jp/programming/numpy/docker.html
            https://docs.docker.com/engine/reference/run/
            ttyでインタラクティブにImage上で活動するには
                docker run -i -t ubuntu /bin/bash
            ただし、通常は"/bin/bash"に相当するものがDockerfileでデフォルトとして指定される
            Image(インスタンス)でアーダコーダした結果は、その後も残るの?
                普通にログアウトして、またrunしたら、まっさらになってた
                docker ps -a でたどれるっぽい
                デタッチしてからdocker commitとかで記録するっぽい
                http://aics-app.sakura.ne.jp/blog/2015/01/06/docker-%E3%81%A7-%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%81%AE%E4%BF%9D%E5%AD%98commit/
    VirtualBoxの仮想HDDの空き容量が足りない。増やす
        http://qiita.com/ryo716/items/3b2298f9016a8a002ecd
        https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi
        32GBに増やそう
        VirtualBox側の仮想HDDの容量を大きくする
            "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifymedium "G:\VirtualBox VMs\Ubuntu 16.04 LTS 日本語 Remix\Ubuntu 16.04 LTS 日本語 Remix.vdi" --resize 32768
                うまくいかない
                from 0.0MB
                マルチバイトのせい?
            "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifymedium "G:\VirtualBox VMs\Ubuntu 16.04 LTS Japanese Remix\Ubuntu 16.04 LTS Japanese Remix.vdi" --resize 32768
                だめでした
            バグの気配
                https://forums.virtualbox.org/viewtopic.php?f=6&t=81512
                http://blog.goo.ne.jp/ashm314/e/72bde878a8d56d0fc60ab49dcf7f0914
            SSD チェック OK チェック外し OK
            ./VBoxManage.exe modifymedium 'G:\VirtualBox VMs\Ubuntu 16.04 LTS 日本語 Remix\Ubuntu 16.04 LTS 日本語 Remix.vdi' --resize 32768
                だめでした
            バグだな
                https://www.virtualbox.org/ticket/16311
                https://www.virtualbox.org/changeset/65477/vbox
            仮想マシンを実行したりと、ぐちゃぐちゃ繰り返しresizeを試行してたらうまくいった
                0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
                #上記チェンジセットを見ると、状態の更新がされてなかったぽい
                ぐちゃぐちゃ繰り返して状態が更新されたからうまくいった?
                いや、今使っているのは、上記チェンジセットの反映済みかも
                わからn
            ok
        パーティション変更
            gpartedをインストールするスペースもない
                sudo apt-get clean
            sudo apt-get install gparted
            sudo gparted
                スワップ削除
                sda2を右端に移動
                スワップ作成
                sda1拡張
        swapのUUID変化に対応
            sudo blkid
                /dev/sda1: UUID="620458fd-4705-4b74-80a3-cb41886bb8e1" TYPE="ext4" PARTUUID="07cd590d-01"
                /dev/sda5: UUID="ef44aa65-381f-4d13-aa80-cfb78d6bebd2" TYPE="swap" PARTUUID="07cd590d-05"
            /etc/fstab
        ok
    Docker 続
        Dockerの公式ドキュメントは一通り見たほうがいいな
        使い方学習3
            https://docs.docker.com/engine/getstarted/step_five/
            docker tag 1908d5dd54d8 decadenthoge/docker-whale:latest
            docker login
            docker push decadenthoge/docker-whale
            docker image remove -f 1908d5dd54d8
            docker run decadenthoge/docker-whale
        他
            コンテナは、独立したプロセスのように振る舞う感じ
            コンテナIDで識別
            デタッチしたりアタッチしたり
            スナップショットを記録(=コミットしてImage生成)もでき、Docker Hubにあげられる
            workspaceがDocker Container、branchがDocker Image
    Python3の開発環境を用意する
        要求
            Python3のコード作成・実行・対話
            環境を汚さずに、使い捨てできる形
        要件
            下記コマンドを実行すると
                docker run -it decadenthoge/my_python_dev_env
            下記のPython3の開発環境が
                UbuntuとかのOS上
                シェル
                vim
                gitでバージョン管理
                python3インタプリタの実行
                pythonのパッケージ導入
                環境内の変更およびそれを次回のために維持
            手に入り、かつ、Dockerを動かす側の環境は一切汚れない
        方法
            Dockerfile記述 ubuntuをベース bashをエントリーポイント
            build
            docker run -it
            vim,git系を用意
                必要なパッケージをapt-get install
                    vim git
                自分のドットファイルをclone
                rcをリンク
            Python系を用意
                Minicondaについて調べてインストール
            デタッチ
            タグ
            Hubでリポジトリ作成
            プッシュ
                docker push decadenthoge/my_python_dev_env:latest
        実行する前に、minicondaのDockerImageを触ってみよう
            #docker pull continuumio/miniconda
            docker run -t -i continuumio/miniconda /bin/bash
            debianベースだから、ほんとに最小限だ
        実行
            Dockerfile記述
                https://github.com/hyperSuperHoge/myDockerfile
                ubuntuをベース
                vim,git系を用意
                    必要なパッケージをapt-get install
                        vim git
                    自分のドットファイルをclone
                    rcをリンク
                bashをエントリー
                USERコマンド使うと、以後のシェルコマンドはそのユーザでログイン
                Dockerfile内のCOPYなどの命令にて、環境変数を参照するときは注意
                    RUNによる環境変数の書き換えは反映されない
                    build時に確定するっぽい 静的というか
                    http://stackoverflow.com/questions/28966198/dockerfile-home-is-not-working-with-add-copy-instructions
            build
                道中が同じならキャッシュを使ってくれるから 時間短縮でうれしいな
            Python系を用意
                Minicondaについて調べてインストール設定追加
                公式のDockerfileが参考になる
                    https://hub.docker.com/r/continuumio/miniconda3/~/dockerfile/
                Pythonのバージョン云々でビクビクして実験用にDockerまで用意したわけだが、Minicondaで全然問題ないのでは?
                ワロス
                Dockerが使えるようになったのは収穫だからよしとしよう
                あとグラフを可視化するときにGUIが必要だから、Dockerで家クラウド的に使うのであれば、X Windowが必要になるなー
                    http://postd.cc/running-gui-apps-with-docker/
                ファー
                http://qiita.com/yubessy/items/2dd43551aa8308dc7eca
            build
            タグ付け
                docker tag c067abc4d8bd decadenthoge/my_python_dev_env:1.0
                docker tag c067abc4d8bd decadenthoge/my_python_dev_env:latest
            Hubでリポジトリ作成
            プッシュ
                docker push decadenthoge/my_python_dev_env:latest
            ローカルのコンテナ/Image全削除
                docker rm `docker ps -aq`
                docker rmi `docker images -aq`
                --
                Dockerfile:ビルド設定
                Image:ビルド結果
                コンテナ:Imageを起点として動いているもの
            テスト
                docker run -it decadenthoge/my_python_dev_env
                conda create --name myenv python=3.5 numpy=1.11.1
                source activate myenv

f:id:superHoge:20170223192402p:plain

f:id:superHoge:20170223192406p:plain

f:id:superHoge:20170223192410p:plain
            ok
考察
    目的は達成された
    わざわざDockerまで導入する必要はなく、Miniconda3がすべて解決してくれる
    ただ、事前調査でその知見を得られるかというと どうなんだろう
    少なくとも、Dockerを使えるようになったのは収穫だ
    環境を汚しまくっても気軽に使い捨ててクリーンな状態からやり直せる
メモ
    VirtualBoxの仮想イメージをDropbox下に置くのはナンセンスだった