したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

NNの画像関係の調査

1karino2:2017/03/05(日) 22:04:03
お絵描きアプリとかで使うのに役に立ちそうな事を中心に読んで行こうかな、と。

まずはサーベイから。
https://arxiv.org/abs/1512.07108
Recent Advances in Convolutional Neural Networks

42karino2:2017/04/28(金) 12:17:25
pix2pixはそのうち読んだ方が良いかもなぁ。

43karino2:2017/04/28(金) 12:52:54
次はちょっと入門に戻ってGANのチュートリアル

https://arxiv.org/abs/1701.00160

ここらでベースラインを上げておこうかな、と。

44karino2:2017/04/28(金) 13:59:57
iGANとか可能性を感じるな。

45karino2:2017/05/01(月) 11:35:37
3.2.1で練習問題7.1を解け、といわれて少し考えたが全然分からんかった。
うぅ、関数解析力が足りない…

https://gist.github.com/karino2/b489a3795588965a33555e26d0cf16c6

46karino2:2017/05/01(月) 13:48:12
3.2.3で生成器のコスト関数が13になるくだりが良く分からない。
最初に言ってるのは、識別器が賢くなりすぎると生成器が何を工夫しても完全に見分けてられてしまうのでgradが消失するから改善出来ない、という事だよな。
それは分かる。

…と次のページに解説があった。
なるほど、識別器が正解になる確率を最小化するのではなく、識別器の誤りの期待値を最大化するのか。

47karino2:2017/05/03(水) 15:04:46
さて、練習問題まで来た。
7.1は教えてもらってだいたい理解する。
7.2は回答を理解出来た。
7.3は32を微分する所が分からない。
期待値の為のpの方だけがthetaに依存するのだろうけれど、logはどこから来た?という。
たぶん積分変数をlog pとかに置換するんだよなぁ。

48karino2:2017/05/03(水) 15:14:27
出来たヽ(´ー`)ノ
https://imgur.com/AbCtBup.jpg

49karino2:2017/05/03(水) 15:30:23
GANチュートリアル読み終わり
お次はDeep Photo Style Transfer

https://arxiv.org/abs/1703.07511

50karino2:2017/05/06(土) 15:51:10
アフィン変換の項をコスト項としてはさむ事で線が歪んだりする事を防ぐ事で実写っぽくする、という事かな。
なんか改善してる場所が少ないので、あまり実装についての説明も無く、コード読め、という感じに見える。

とりあえず必要になったら読めば良さそうなので、まずは先に進もう。

51karino2:2017/05/06(土) 15:53:05
お次は超解像度。

https://arxiv.org/abs/1501.00092

52karino2:2017/05/07(日) 17:17:10
3.1を読んでるが、non-linear mappingといいつつどの辺がnon-linearか分からんな。
(2)式は線形に見えるが。

53karino2:2017/05/08(月) 10:38:24
3層のネットワークで割とシンプルでありながら結構な結果が出る、との事で、これは良い気がするな。
難しい事は大して無し。

54karino2:2017/05/08(月) 10:41:00
お次も超解像度。

Rapid and Accurate Image Super Resolution (RAISR)
https://arxiv.org/abs/1606.01299

55karino2:2017/05/08(月) 15:06:03
へぇ、これは省メモリと高速なのが売りか。
珍しいけど用途を考えるといいかも。

56karino2:2017/05/08(月) 15:14:09
超解像度は教師データが簡単に用意出来る所がいいね。
使いやすそう。

57karino2:2017/05/12(金) 19:56:58
sharpeningあたりで飽きてきたので一旦中断。
そろそろ実際に手を動かすかなぁ。

58karino2:2017/06/03(土) 08:23:54
流れてきたので貼っておく。読むかも。

Cramer GAN
https://arxiv.org/abs/1705.10743

59karino2:2017/06/04(日) 21:20:36
RAISRでも実装してみようか、と元の論文読み直してるが、いざ実装しようとかんがえると結構分かってない所あるなぁ。
ローカルのgrad出せるか少し不安。

機械学習のアルゴリズムの実装は、何をやるのかを理解してしまえば、それをやること自体は簡単なのだが、理解するのが大変なのだよな。
実際に実装する所までだけを見て「難しい数学とかいりません!」というのは、結局実務で自分で理解しないといけない時に困る事になるので、やっぱり嘘なんじゃないか。

TensorflowってpinvとかSVDとかあるのかしら?まぁあるか。

60karino2:2017/06/04(日) 21:41:53
お仕事の練習として、簡単そうな >>51 の方からやろうと思う。
ベンチマークとしても価値はあるだろうし。

61karino2:2017/06/04(日) 23:10:13
RAISRはlocal gradの話はこちらの論文を読む必要がありそう。

Multiscale Principal Components Analysis for Image Local Orientation Estimation (2002)
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.12.9013

62karino2:2017/06/05(月) 21:32:23
全然理解出来ないが、理解出来ない所は結構絞られてきた。

1. local grad(G)の具体的な計算。
2. Wなんなの?

Gはようするに各ピクセルでのgradだから周辺のピクセルとの差か?平均値の定理みたいな感じで求まるもので良いのかもしれない。

Wは対角行列との事なので、なんだか知らんが大したものではなさそう。
separable normalized Gaussian kernelって何なんだろう…

63karino2:2017/06/06(火) 08:58:00
Wは対角成分しか無くて、対角成分がガウス分布だ、という事だよな。
separableというのは共分散が無いということで、非対角成分がゼロってだけか。
分布と言っても何を学習するのかいまいち分からんが。
muとシグマ?でもxが無いじゃん。

64karino2:2017/06/06(火) 09:05:30
分かった。対角成分がガウシアンフィルタになってればいいのか。つまりまんなかが大きくて両端が小さい定数。
シグマがいくつかは知らんが、まぁ適当でいいんだろう。

65karino2:2017/06/06(火) 09:28:08
一晩たったら意外とわかるようになってるな。
例えば5x5の周囲のピクセルを見て、差分の平均でgradを定義する。とりあえず結果は3x3で良いか。
するとnは9だよな。

で、どう並べるかは分からないがこれを一列に並べて、まんなかが中心になるようにしたのがG_kか。
これにガウスフィルタかまして積をとって、SVDする。
結果出た固有ベクトルの大きい方の角度がシータ。
固有値ラムダから(9)で定義されたmuが出て、これでハッシュのキーが出来る。

お、分かった気がする。

66karino2:2017/06/10(土) 11:37:39
最近実務で使うので、inceptionとres netの原典は読んでおくか、という気になる。

InceptionはGoing Deep with Convolutions.
https://arxiv.org/abs/1409.4842

67karino2:2017/06/10(土) 11:39:39
ResNetはこちら。

Deep Residual Learning for Image Recognition
https://arxiv.org/abs/1512.03385

最初に読んだサーベイ論文も見直してもいいかもね。

68karino2:2017/06/10(土) 13:25:24
Cramer GANの論文で紹介されてた、この本は良さそう。

http://www.springer.com/us/book/9781461448686
The Methods of Distances in the Theory of Probability and Statistics

この本やるかなぁ。

69karino2:2017/06/17(土) 08:49:48
上記本はあまりにも難しすぎて、とりあえず挫折。

関係ないがMobileNetsというのが話題になってたので軽く読むかなぁ。
https://arxiv.org/abs/1704.04861

70karino2:2017/06/17(土) 09:04:28
depthwise convolutionと1x1 convolutionをビルディングブロックとして、ハイパーパラメータでサイズを選べる、というのが売りらしい。
1x1 convolutionはInceptionのと同じと思われるが、depthwise convolutionとはなんぞや?

71karino2:2017/06/17(土) 09:15:54
depthwise convolutionは、式(3)を見ると単にチャンネル方向に一枚だけ適用していくフィルタに見える。
フィルタ数はチャンネル数に一致する時しか定義出来ないので、これをかました結果のチャンネル数は同じになる。

これではチャンネル同士の相互作用が拾えないが、それは1x1で拾う、という事らしい。

この2つを合わせて、depthwise separable convolutionというらしい。

72karino2:2017/06/17(土) 09:20:20
im2col要らない、とかはGoogleらしいな(笑)

73karino2:2017/06/17(土) 09:30:06
アルファの比率でチャンネル側の次元を削減する、とあるが、どうやって減らすのだろう?
3次元を二次元にする、とかは、線形補間かな?

74karino2:2017/07/31(月) 22:31:14
Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
https://arxiv.org/abs/1609.04802

SISRのGANを使った版。SRGANという略称をつけてる。
ロスとしてはstyle transferを参考に、ネットワークの途中のフィーチャーのl2ノルムと、GANのdescriminatorを騙せなかった度合いの対数尤度(かな?6)の和をロスとする。

ネットワークは2.1に書いてある(generatorの方も2.1に書いてある)。
fig 4がそれ。

生成側はfeed forwardネットワークとしてVGGを使うと書いてあるが、res block解かskip connection がついているからResNetの亜種では無かろうか?
33, 24, 32, 28, 48の寄せ集めという感じで個々の論文見ないと良く分からないが、まぁコード読ませてもらう方が早そうな気もする。
まぁいい。

で、descriminatorも44に基本的にはしたがって49のカーネルも足してあるとか。

どちらもFig.4を見る限りは結構シンプルに見える。

75karino2:2017/07/31(月) 22:38:34
SRResNetというのが出て来るが、この元論文はどれじゃろ?実装の場所は分かるが、論文がどれか良く分からん…

76karino2:2017/07/31(月) 22:42:37
1.2. contributionを読むと、SRResNetも自分たちの貢献と言ってるからこの論文で作った物なのかなぁ。
これがどういう物なのか、いまいちちゃんと記述されてないが。

77karino2:2017/08/05(土) 14:30:28
次はSRGANの論文から参照されていた、Perceptual Losses for Real-Time Style Transfer and Super-Resolution を読む。
リンクは後で貼る。

78karino2:2017/08/05(土) 15:17:25
perceptual lossって単なる分類問題のボトルネックのユークリッド距離かよ!
そんなの普段からめっさ普通に使ってるやん…

79karino2:2017/08/05(土) 15:33:17
ロス関数以外はNNを使った普通のSuper-ResolutionとかStyle Transferの問題。
違うのはロス関数用に別のトレーニング済みモデルを使う所。
VGG16を使ってこっちはトレーニングはしない。
このモデルはfeature extractorとして使って、このfeatureのl2距離をロスとする。

シンプルだが汎用的なアイデアね。

80karino2:2017/08/06(日) 12:55:01
この論文はSISRとstyle transferの両方をカバーしている。
とりあえずSISRに絞ってメモをしていく。

SISRでは、普通のSRCNNでは最初にbicubiqでupsampleしてからsarpenしてたのを、このupsamplerもresblock並べてlog2f covolutionつなげた物を代わりに使うとの事。
確かにここも学習する方が良さそうだが、その場合low resのトレーニングデータはどう作るか良く分からんな。

81karino2:2017/08/06(日) 13:06:02
perceptual lossでVGG16を使うのは何故だろう?
style transferのケースでは間のレイヤー使いたいのでinceptionモジュールが都合悪い、というのは分かるが、SISRなら別にinception v3で良いんじゃないか?
3.2を読んでもいまいち理由が書いてない。

82karino2:2017/08/06(日) 13:18:22
>>81 4.2を見ると、relu2_2を使うらしい。
最後を使う訳じゃないのね。
これではinception v3じゃダメな訳だ。
Fig.2. でrelu3_3を使うのだと誤解してた。

83karino2:2017/08/06(日) 14:49:46
frobenius normは、要素の二乗和か。

https://ja.m.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E3%83%8E%E3%83%AB%E3%83%A0

84karino2:2017/08/06(日) 15:10:10
low resの作り方が一回ガウシアンかけてからbicubicする所がSRCNNと違うね。

85karino2:2017/08/06(日) 15:11:37
ネットワークの構造は良く分からんが、ダウンサンプラー以外はSRCNNと一緒かね。
トレーニングデータは大分多そうだが。
実装を確認してみたい所だが、割と簡単に試せそうなのでやってみたい気もする。

86名無しさん:2017/08/06(日) 15:58:12
>>77 論文のurl。
https://arxiv.org/abs/1603.08155

87karino2:2017/08/06(日) 19:28:43
次はこの Image Super-Resolution via Deep Recursive Residual Networkを読む。
https://twitter.com/yohei_kikuta/status/894107330760933377

>>74 もRes blockと同じweightのrecursionを使ってた気がするが。

88karino2:2017/08/07(月) 21:42:16
この論文はネットワーク構造が詳しく載ってて良いね。
実装出来そうな気がする。
ロスはpixel wiseな自乗誤差か。
画像は291枚ということでSRCNNよりちょっと多いが似たようなもの。

で、トレーニングは4日かかる、との事なのでこれもSRCNNと同じ感じやね。

89karino2:2017/08/07(月) 21:54:02
読み終わった。
全体的にSRCNNのネットワーク構造変えただけでセッティングはほとんど一緒ね。
試すのは簡単そうだけど、4日トレーニングにかかるからpercepual lossの方がいいかなぁ。

90karino2:2017/08/09(水) 22:11:44
>>74 をもうちょっとしっかり読み直し。
ジェネレータはRecursiveにはしてないResBlock重ねた物で、>>87 から参照されてた奴に見える。
で、最終的にはトレーニングしたジェネレータを使う訳ね。
LR版のパッチは拡大せずそのまま食わせるっぽい。
content lossはpeceptual loss。
discpiminaterは普通のCNNに見えるが、44に従ってるとか。

44はUnsupervised representation learning with deep convolutional generativa adversarial networks だそうで。
これは後で読もう。

91名無しさん:2017/08/09(水) 23:15:42
>>90 これ、オリジナルのDCGANの論文じゃん。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板