Wake-Upたった1枚の写真から3Dモデルを生成する。ヒト型であればある程度崩れていても可。ワシントン大学の研究チームが開発。パラメータ(ノード)数って多いほうがいいの?どうなの?A.NNはパラメータ数が多い方が汎化性能が高い現象がみられる。reluを使った多層のNNで重みに弱い正則化を適用しクロスエントロピー損失を使った時の解は正規化マージン最大化に対応し、少なくとも2層の時は隠れ層の幅が大きいほどマージンが大きくなり汎化することが示せる。Dropoutってどうなの?(多義的)A.ResNetにおいて、ノードは一つだけで十分ではないかという研究。実験により全結合より単一ノードの方が決定境界を上手く学習することを確認。Normalizationは、併用するとパフォーマンスの悪化が起こることがあるが、その原因について検証した研究。Normalizationは学習で得られた分散を評価時もキープしてしまうため齟齬が生じることが原因と指摘された。https://arxiv.org/pdf/1801.05134@icoxfog417後者につきましては、Kaggleにおいても実際にそうであることを報告しているDiscussionがありましたね。正則化効果の期待を実現している。各レイヤへの入力は以前のすべてのレイヤから与えられ、直接接続数は$\frac{L(L+1)}{2}$となる。H_l([x_0,x_1,\cdots,x_{l-1}])$$DenseNetにおいてはレイヤlの出力はレイヤ$0,\cdots,l-1$の出力をチャンネル方向に連結したものとなる。してみると全くもって異なることが明白になる。3)から成るレイヤをトップ画像の様に密結合させたもの。rateと呼んでいる。1)レイヤを導入した。これはチャンネル方向での圧縮操作(和)となる。2)から成るレイヤをを導入した。DenseNet-BC上記二つの工夫を取り入れた版。Performanceよさげ。実装:https://github.com/sheep02/2D_DenseNet_Keras.gitこれ自体の動作確認はしていないのですが、これをもとに別のモデルを組みましたので恐らく動作します。ネットワークの頭、中間のレイヤでsumの操作を加えるときにショートカット側で畳み込みしておかないとチャンネル数(フィルタ数)が合わずにエラーが吐かれる。ネットワークの出力がターゲットのサイズと合致していないと吐かれる。適当なサイズ/数でPoolingするなどしてダウンサンプリングする。畳み込みレイヤの出力をConcatenateを用いて連結させようとしたところ吐かれた。詳細は確認していないがconcatenateを代用することで解決。blockを重ねすぎて(プーリング層を入れすぎて)吐かれた。block(本質的にはプーリング層)を減らして解決。blockをさらに重ねたければDenseNet-Bを採用すべし。Tensorflowプリセットを利用するtf.estimator抽象度の高いAPI。高位の機械学習APIともいう。データの入力には下記のfeature-columnsを用いる。このクラスは以下を内包している。Estimators.tf.feature-columnsestimatorへ入力する特徴列(データ)の定義。特徴列の型、サイズ、構造を定義し、生成する。オリジナルモデルを構築するtf.Variable重みやバイアスといった学習対象の変数を格納する。(B)tf.placeholder学習に必要なデータを供給する。テストデータの入力の際はnumpy行列をそのまま渡す。