明日会社がなくなっても

明日会社がなくなっていても動揺しないように、情報を残していきたい

夏休み5日目の学習記録

08/16(水),フードコードでお勉強。

  • 2時間(18:30-20:30)
  • 13ページ(110-122P)
  • 4.4.2-4.6章(4章完了)

Python

for i in range(5):
   print(i, end=" ") 
# ⇒ 0 1 2 3 4 
a = np.arange(4).reshape(2,2) # 2×2の行列
for x in np.nditer(a):
    print(x, end=" ")
# ⇒ 0 1 2 3 4
it = np.nditer(a, flags=['multi_index'])
while not it.finished:
   print(it.multi_index, end=" ")
   it.iternext()
# ⇒ (0, 0) (0, 1) (1, 0) (1, 1) 
from IPython.core.debugger import Pdb; Pdb().set_trace()

JupyterまたはiPython Notebookでデバッグをする方法 - Qiita

from greeting import *
  • JupyterでIn [*]は、実行中を表す.

『ゼロから作るDeep Learning

夏休み4日目の学習記録

08/15(火)、図書館で勉強しました。

『TensorFlowで学ぶディープラーニング入門』

  • 2.5時間(13:30-16:00)
  • 29ページ(81-110P)
  • 2.1.3-2.3.4章

学んだこと

  • Sesion.runの使い方

  • トレーニングセットに対する正解率を計算することは、あまり意味がない

  • 過学習を避けるため、トレーニングセットの一部をテストデータに用いる。

  • 断定的に領域を決定することを「ハードマックス」、確率的に決定することを「ソフトマックス」という

  • ミニバッチは、一部のデータを使って誤差を小さくする方法。確率的降下勾配法。

    • 利点1: 1回当たりの計算量を減らす
    • 利点2: 極値を避けて真の最小値に達すること
  • Tensorflowは「データフローグラフ」という形で計算を表現している。
    TensorFlowのキーコンセプト: Opノード、セッション、変数 - Qiita

Python

  • zip関数:複数のリストを同時にループできる
list1=[1,2,3]
list2=[4,5,6]
for (a,b) in zip(list1,list2):
    print(a,b)

感想

「なごやでゆるふわ迎撃会」に参加しました

「なごやでゆるふわ迎撃会」という勉強会に参加しました。 その参加記録です。

kuxu.connpass.com

注意事項

  • 間違った情報や、発表者と異なるニュアンスで書かれている場合があります。
  • 自分の興味があることしか、メモしていません。
  • 以下のタグを使っています
    • [用語] : 発表で使われた言葉で、自分が知らなかった言葉。説明は私がネットで調べたもの。
    • [感想] : 私が思ったこと。
    • タグなし: 発表者が発言したこと(のはず)

Intel MPXとIoTセキュリティ

www.slideshare.net

  • MXP: Memory Protection Extensions
  • IoTのハッキングの原因が、C言語
  • C++でもバウンダリ例外は規定していない
  • MPXは、Intel CPUなら、skylake以上ならば使える。

  • [用語]コラッツ問題

  • [用語]NOP命令:何もしないことを意味する
  • [用語]Windows SEH: Structured Exception Handler. SEHはWindowsが提供している例外処理機構である。
  • [用語]Intel Atom: 携帯情報端末 (PDA) や低価格PC、組込みシステム向けのマイクロアーキテクチャ及びマイクロプロセッサ群

感想

  • CPU-ZというアプリでCPU情報を確認できる。ただし、MPXかどうかは分からない。 ⇒インストールしてみた。

  • コラッツ問題、おもしろい。

  • 機械語/アセンブラなどハード寄りのことは全然知らないなーと、改めて認識した。

JVM で Rx

  • RxJava: Javaでリアクティブプログラミングを行うためのライブラリ

@studio_graph のこれまで

  • 機械学習は、学習コストやハードのコストなどが高い。安易にサービス化するのは危険かも。

  • 機械学習を初めて勉強する際は、「Machine Learning Coursera」がいいらしい。あと、「ゼロから作るDeep Learning」も。

  • [感想] クックパッド機械学習やってるんだー

  • [感想] 学生の間ではSIerは不人気?

mrubyのデバッグの実演

  • [用語] mruby: 組み込み向けの軽量版のRuby

  • [感想] gdbデバッグしている!ロックだー!

ベアメタルハイパーバイザーにmrubyを組み込む

  • OSの下で動かすので、printfなどの標準関数が使えない。自作する必要がある。

  • [用語] FPU: Floating Point Unit

  • [用語] BitVisor: セキュアVMプロジェクトによって開発されている国産VMMソフトウェア

  • [感想] printfの中身はどうなっているんだろう?特に出力処理が謎。

@kanda_227 とは

ハッカソンの運営をしてみた

  • [用語] Microsoft Flow: サービスを連携するサービス

基盤チームについて

  • タスクを15分単位で見積もる

  • スキルマップシートを「知っているかどうか」でなく「使っているかどうか(GitHubにpullreqしているか)」で判断する。

  • ツールを導入する目的。発表者のチームは「できない人の無駄を減らす」ことは考慮しない。

    • できる人の無駄を減らす
    • できない人の無駄を減らす
  • やりにくいことの直観を信じる。ただしその対策に対する直観は信じない。

  • プロダクトオーナなどのロールを毎回変えている。

  • ゲーム性を高めている

  • 学習時間の時間を設けている

  • [感想] ウチのチーム/会社は、「できない人の無駄を減らす」ことばかり考えているんだろうなー

  • [感想] ウチの会社のスキルマップシート、ちゃんと考えた方がいいかもしれない。

全体的な感想

  • 「ゆるふわ」の定義はよく分からないが、全然「ゆるふわ」ではなかったと思う。

  • 学生が多い勉強でした。そして、学生のレベルが高い!

  • 幅広い話が聴けて、自分の視野が広がったなーという印象。ハード寄りの話が聴けたのは特によかった。また参加したいです。

HDDを破棄するために分解しました

壊れた3.5インチのHDDを破棄するために、HDDを分解しました。

写真を撮ったので、アップします。 別に珍しくもなんともないけど。

分解前 f:id:yuji38kwmt:20170815220216j:plain

シールに隠されているネジがあるので、シールを剥がします。 f:id:yuji38kwmt:20170815220304j:plain

全てのネジをはずして、カバーを開けます。 トルクスドライバの「T8」を使いました。 f:id:yuji38kwmt:20170815220314j:plain

三日月型のプラスチックをはずします。 プラッタの中心部分のネジも外したかったですが、対応するドライバがなかったので、ここで諦めます。 f:id:yuji38kwmt:20170815220317j:plain

裏側の基盤をはずします。 f:id:yuji38kwmt:20170815220315j:plain

あとはプラッタを紙やすりなど、傷つけて破棄しました。 どこまで傷つければいいかは、正直分からない。。。

夏休み3日目の学習記録

08/14(月)、フードコードで勉強しました。

『TensorFlowで学ぶディープラーニング入門』

  • 3時間: 13:00-16:00
  • 26ページ(55-80P)
  • 1.3.3-2.1.2章

学んだこと

  • 最尤推定法:与えられたデータを正しく予測する確率を最大化する

  • tensorflow.initialize_all_variablesは2017/03/02以降に廃止された。替わりにglobal_variables_initializerを使うこと。

Python

[x**2 for x in range(0,5)] #⇒ [0,1,4,9,16]

質問

  • Windowsで数式から簡単にグラフを作成できるツールは??? MacならGrapher使うんだけどなー

  • numpy.linspaceの[linspace]は何の略?
    ⇒ 同僚から教えてもらった。Linear Space(線形空間)っぽい。名前と機能が合っていないが。

  • numpy.eye: なぜ「eye」という名前?
    ⇒同僚から教えてもらった。単位行列を生成するidentify関数と音を合わせたのかもしれない。 あと、numpyはMatlabユーザのことを考えていて、matlabだとeyeを使うらしい。 http://mathesaurus.sourceforge.net/matlab-numpy.html

感想

  • 『TensorFlowで学ぶディープラーニング入門』は数式に対する説明は丁寧だが、ソースに対する説明は不十分。 numpyのライブラリを知っていること前提のように思う。 2.1章 P71の以下のコードが全然分からなかった。
n0, mu0, variance0 = 20, [10, 11], 20
data0 = multivariate_normal(mu0, np.eye(2)*variance0 ,n0)
df0 = DataFrame(data0, columns=['x1','x2'])
df0['t'] = 0

説明は「t=0(非感染)にのデータを乱数で発生する」のみ。 このコードの説明はなくてもTensorflowは理解できるけど、自分は「20を平均値にして~」ぐらいの説明が欲しかった。

  • TensorFlowのplaceholder機能はすばらしいと思う。処理とデータが分かれて、コードの可読性があがりそう。

  • 共分散行列を調べるために、6年以上振りに「線形代数」の教科書を開いた。懐かしい。私はあの頃と比べて成長しているのかな?

夏休み2日目の学習記録

地元のフードコートで勉強しました。

『ゼロから作るDeep Learning

  • 3時間(12:30-15:30)
  • 19ページ(94-112P)
  • (4.2.3-4.4章)
学んだこと
  • numpy.random.choice: 指定された数字の中からランダムに好きな数だけ取り出せる

  • ニューラルネットワークの学習の際に、認識制度を「指標」にしてはいけない。 認識精度とは、「100枚中32枚正しく認識したから32%」という値。 認識精度を使うと、微分がほとんどゼロになってしまうため。

  • 学習:適切なパラメータを決める作業

  • 学習率:どれだけパラメータを更新するかを決める値

  • ハイパーパラメータ:学習率のような値。人の手によって設定されるパラメータ

  • 刻み幅hは1E-4程度であれば、いい結果が選られる。 刻み幅は大きすぎても小さすぎてもいけない。 http://www.geo.titech.ac.jp/lab/ida/numexe/manual/4/diff.html

Python

h = 0.1
x = numpy.array([3, 4])
x[0] = x[0] + h
print(x) #⇒[3.1 4]を期待するが、[3 4]が表示される
x = x + h
print(x) #⇒[3.1 4.1]が表示される。

numpy.arrayは、型の異なる要素が混在してはいけないらしい。 できれば、x[0] = x[0] + hの処理で、アップキャストして欲しいんだけどなー

NumPy 配列の基礎 — 機械学習の Python との出会い

  • タプルは便利!関数が返す情報を簡単に増やすことができる。

『TensorFlowで学ぶディープラーニング入門』

  • 1.5時間(16:00-17:30)
  • 41ページ(16-56P)
  • 1.1~1.3章

以下の本を捨てます

本棚を整理しました。

捨てる理由は、以下の通り。

  • 情報が古い(Pythonの本はバージョン1.5ベース)
  • 触りたくない言語(WSHやりたくない)
  • 難しかった(作って分かる系)
  • もう受ける気のない試験の対策本

感想

  • Deep Learningの本が飽きてきたので、Tensorflowの本に乗り換えました。

夏休み1日目の学習記録

コワーキングスペースで勉強しました。

Python

『ゼロから作るDeep Learning

22ページ(72-93ページ=3.6-3.7,4.1-4.2章)/ 3.5時間

  • MNISTデータセットを使って、推論
  • バッチ処理数値計算ライブラリは、大きな配列の計算を効率よく処理できるような最適化が行われている

  • 分類問題:男か女かを分類するような問題

  • 回帰問題:体重の予測のような数値を予測する問題

  • 特徴量:入力データから本質的なデータを的確に抽出できるように設計された変換機

  • 訓練データを使って学習し、テストデータを使ってモデルの実力を評価する。

  • 過学習:あるデータセットだけに過度に対応した状態

  • 2乗誤差、交差エントロピー誤差

関数プログラミング実践入門』

34ページ(1-34ページ=0.1-0.6章) / 1.5時間 勉強

  • 関数プログラミングのメリットは、バグが少なくなるなどなど。

  • 副作用を持つ手続きは、関数プログラミングの「関数」ではない。

  • 関数型言語は一般的に、関数が第一級の対象である言語のこと。

  • 第一級とは、その言語において単なる値と同じであること。

  • 動的型付け、静的型付け

  • 束縛

感想