明日会社がなくなっても

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

Nagoya.swift+勉強会に参加(React)

Nagoya.swift+勉強会に参加して、もくもく勉強しました。 nagoyaswiftplus.connpass.com

「Node.jsとReactアプリケーション開発テクニック」という本の1~2章を読みました。 www.socym.co.jp

学んだこと

  • npmの使い方
  • babelの使い方(トランスパイラ)
  • ReactのHello World
  • JavaScript Standard Code Style

JavaScript

  • console.logには複数の引数を渡せる。
console.log("a=" + a); //1個の引数(プラス演算子で結合)
console.log("a=" , a); //複数の引数
  • console.infoconsole.tableなど、consoleオブジェクトに便利な関数があることを知らなかった。。。

Visual Studio Code

  • 入力補完が素晴らしい。関数の呼び出しを先に書いて、後から関数を作るときでも、関数名の補完が出る(jsファイルで確認)。

  • ESLintを導入してみた。質問形式で設定ファイルを作成してくれるのが便利。

ESLintの設定事始め - Umi Uyuraのブログ

>eslint --init
? How would you like to configure ESLint? Answer questions about your style
? Are you using ECMAScript 6 features? Yes
? Are you using ES6 modules? Yes
? Where will your code run? Browser, Node
? Do you use CommonJS? No
? Do you use JSX? Yes
? Do you use React? Yes
? What style of indentation do you use? Spaces
? What quotes do you use for strings? Double
? What line endings do you use? Windows
? Do you require semicolons? Yes
? What format do you want your config file to be in? JSON

babel.js

覚えた用語、教えてもらった用語

疑問点

本の感想

  • サンプルコードについて。末尾のセミコロンの有無が統一されていなくて、気になった。

9/4-9/10 学習日記

機械学習

全結合

  • ニューラルネットワークの全結合:隣接するすべてのニューロンで結合
  • 全結合層の問題点:1次元データに変換するため、空間情報(空間的に近い値はピクセル値も近い)が無視されている ⇒ 畳み込み層なら形状を維持できる。

CNN

  • ストライド:フィルタを移動する間隔
  • パディング:入力データの周囲にデータを埋めること。出力サイズを一定にするために行う。
  • Pooling層:縦横方向の空間を小さくする演算
  • CNNでは「Convolution - ReLU - (Pooling)」というレイヤでつながっていくが、出力層に近い部分では「Affine - ReLU」の組み合わせが用いられる。
  • 畳み込みのフィルタはエッジ(色が変化する境目)やブロブ(局所的に塊のある領域)に反応する
  • 最初の層は単純なエッジに反応し、続いてテクスチャ、物体のパーツに反応する。層が深くなるほど抽出される情報が抽象化されていく。
  • LeNetは1998年に提案されたCNN
  • AlexNetは2012年に発表されたCNN。ディープラーニングブームの火付け役。

Deep Learning

  • MNISTは簡単なモデルなので、層が深くなくても良い結果が得られる
  • Deep Augmentation:画像を回転や移動させて画像枚数を増やす手法
  • 層を深くすることの利点:
    • ネットワークのパラメータ数を少なくできる
    • 学習データを少なくできる
  • ILSVRC(ImageNet Large Scale Visual Recognition Challenge):大規模画像認識のコンペティション
  • ImageNet:大量の画像のデータセット
  • Deep Learningで有名なネットワーク:VGG, GoogLeNet, ResNet
  • ディープラーニングは数値精度はそんなにいらない。16bitの半精度浮動小数点数でもよい結果が得られる。

その他

Python

覚えた用語

機械学習 名古屋 第12回勉強会に参加

機械学習 名古屋 第12回勉強会に参加しました。

machine-learning.connpass.com

Cloud Natural Language API

Cloud Natural Language API  |  Google Cloud Platform

以下の分析ができる。

  • エンティティ分析(人、場所などの情報)
  • 感情分析
  • 構文解析

「日本人は「縁の下の力持ち」という言葉が大好きだが、日本ほど、縁の下の力持ち的な職業の待遇が悪い先進国はない。」という文章を入力すると、 感情分析のscoreが"-0.9"になりネガティブであると判断された。

感想

  • 感情分析はtwitterと連携すると、いろいろ遊べそう
  • Google Cloud Shellが便利。emacs, vi, pythonなどが使えた。

覚えた言葉、文法

CeBIT IT見本市に参加したレポート

おもしろかった話

  • タイは日本からもらったお金で、ドイツのシーメンスに電車を作ってもらった。
    • シーメンスは、ダイヤを現在の状態から自動で計算してくれる。
    • タイは日本ほど時間に厳しくないので、多少時刻がずれても問題ない
    • 新興国はどういったダイヤにすればよいかが読めないので、自動計算の方がよい

8/28~9/1 お仕事日記

Apache

RewriteEngine on
RewriteCond %{QUERY_STRING} (^|&)download=true(&|$)
RewriteRule .* - [E=X_ACCESS_DEVICE:NULL]
Header set Content-Disposition attachment; env=DOWNLOAD

Eclipse

  • HTMLの属性値のフォントが斜体だったのを、通常の文字にした。ピリオドとカンマの違いが分かりづらく、間違えてしまったため。

機械学習

  • Affine変換

  • ニューラルネットワークでは推論と学習の2つのフェーズがある。

    • 推論: Softmaxレイヤを使わない
    • 学習: Softmaxレイヤを使う
  • Softmaxレイヤによってスコアが正規化(合計が1)される。

  • 「ソフトマックス関数」の損失関数として「交差エントロピー誤差」を用いると、逆伝搬がy - tのように「キレイ」になる。

    • y: Softmaxの出力
    • t: 教師ラベル
  • ニューラルネットワークの学習:この重みとバイアスを訓練データに適応するように調整すること

  • ニューラルネットワークのレイヤの出力
    Affine → ReLU → Affine → ReLU→ … →Affine → Softmax

  • 活性化関数の移り変わり
    シグモイド関数→ハイパボリックタンジェント→ReLU

    • 原点を通る方が計算効率がよくなる
  • tf.truncated_normal: 切断正規分布

  • 隠れ層の係数は0より乱数の方がよい

  • tensorflow0.9以前に書かれたSummary Functionはtensorflow v1から、関数名が変わった。 tf.scalar_summarytf.summary.scalarのように

  • tensorboardが便利。グラフを表示してくれし、計算グラフなども表示

Python

分からなかったこと

  • 誤差逆伝搬法が解析的に求められる理由
  • 誤差逆伝搬方が解析的に求められるならば、数値微分より精度がよいということ?

Java

FindBugs

  • FindBugsを使ってみた。以下のバグを見つけることができた。
  • オブジェクトをイコールで比較. 比較していた値が127以下だったから不具合にならなかった。
Integer a = 1000;
Integer b = 1000;
return a == b;
  • if文の中で同じ条件を判定している
if (a != null && a != null) {
  return false;
}
  • 「HttpSession へ直列化できないオブジェクトを格納しています。」というメッセージについて

8/27 絵本の読み聞かせ

読み聞かせに使った本

『でてくるぞ でてくるぞ』

www.ehonnavi.net

  • 「かばんの中に『かば』」という感じの簡単な言葉遊び。
  • 「何が出てくるかな?」と子供たちと対話しやすい本です。 ただ私は、なかなかそれができず、恥ずかしがってしまう。 難しいね。

『おばけの地下室たんけん』(大型絵本)

www.ehonnavi.net

  • おばけを怖がるおばけたち、かわいいです。
  • 「どすん」の正体はおばさんだったんですが、一体どうやって「どすん」という大きな音を出したのだろうか?
  • 誰が話しているか分からないセリフが、多かった
  • 翻訳本のためか、よく分からないセリフがいくつかあった。
  • 役になりきって読めた(そもそも役になりきるのはよくないかもしれないが)。が、また読みたいとは思わなかった。

感想

  • 未就学児にとって、読み聞かせの時間は5分が限界に感じた
  • 12:00に来て、もう少し時間をかけて本を選ぼう

気になった本

『ぼくのきいろいバス』

www.ehonnavi.net

  • 全体的に黄色い
  • 「はじめてひとりでバスに乗る少年」の物語。少年が成長している感じが好き。
  • 「たのしそうに いっしょうけんめいに」、少年が描くシーンも好き。子供が夢中になってくれるのは、大人として嬉しい。
  • 次回は、この本を読もう!

8/24(水)のお仕事日記

Java

JsHint

  • JsHintの設定に1時間使ってしまった。。。
  • [Redefinition of ‘{a}’]という警告は、/*jshint -W079 */で除去できる。ただしこれを宣言したファイル全てで、「Refefinition of~」という警告は無視される。

In JSHint 1.0.0 and above you have the ability to ignore any warning with a special option syntax. The identifier of this warning is W079. This means you can tell JSHint to not issue this warning with the /jshint -W079 / directive.

JSLint Error Explanations - を参考にした

8/21(月) お仕事日記

Python

  • インクリメント/デクリメントがない!!(i++ / i--)

Java

  • ラムダ式がまだ使いこなせない。調べるのに時間がかかる。 findFirtsメソッドが思いつかなかった。(下記コード参照)
//1件に絞り込んだ結果を取得

//今日、書いたコード
List<String> filterdList = list.stream().filter(..).collect(Collectors.toList());
String str1 = filterdList.get(0);

//たぶんより良い書き方(findFirstを使用)
Optional<String> optional = list.stream().filter(..).findFirst();
String str2 = optional.get();

UNIX

  • seqコマンドで連番を作成できる。
# [1 3, 5, 7, 9]
seq 1 2 9
  • ループを使った値を参照
for i in `seq 1 2 9`; do
    echo "${i}個目の出力"
done

機械学習

  • 「A Neural Network Playground」というサイトがおもしろそう。まだ完全には分からないけど、早く理解できるようになりたい。 A Neural Network Playground

その他

  • テストのエビデンス取るのが面倒だ。。。

  • ファイルの入力チェックに時間がかかってしまった。あそこまで入力チェックは必要だったのだろうか?

  • terasolunaのfileDAOでCSVを読み込んでいるのだが、BigDecimal型に対して空文字を読み込もうとすると、WARNが出る。なぜ?
    ⇒ プロダクションコードのapplicationContextと、テストコードのapplicationContextが異なっていたため。本来、同じ内容でないといけない。