質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

1回答

2157閲覧

D-CNNの画像特徴抽出に対する誤解?

oookabe

総合スコア126

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

1グッド

2クリップ

投稿2018/03/19 09:17

編集2018/03/23 04:15

背景

最近この掲示板で皆さんにお伺いしながら、D-CNNの原理を初歩的に勉強した結果として、
次のような感覚を持ちました。

【1】
D-CNNでは
米、車、海藻、虎 、、、のような外観特徴が人間からすれば完全に異なるobject同士を任意に組み合わせて一つの画像カテゴリー(class)に指定してトレーニングする可能だし、任意の実数label(scalar or vector)を指定可能
{数学根拠:NNでは任意の関数を生成可能}

【2】
D-CNNでは
同一objectであっても、D-CNNにより抽出された「画像特徴data」はそのobjectが属するclassの他のメンバーの画像内容に左右され、一定ではない!

【3】
同一objectであっても、D-CNNにより抽出された「画像特徴data」はそのobjectが属するclassのlabel値に左右される (突飛!)

【4】
D-CNNは本質的にvector量子化方法の一つ。

結論

【1】
D-CNNに抽出された「画像特徴」は人間の視覚的な「画像特徴」とは全然違う概念な量であり
人工画像特徴抽出のようなvisual semantic 性を持たない。
{D-CNNに抽出された「画像特徴data」を可視化してedgeや平滑された部品をvisual的な要素に見えるのは単に元々は有意画像のため、それに対する加重平均処理(filter,所謂**「convolution」**) の結果も元の画像内容を反映しているに過ぎない }

【2】
同じclassに属するobjectであっても D-CNNによって抽出された「画像特徴」はまちまちで、全然共通性を持たない可能性が高い(可比性なし)。

【3】
D-CNNに抽出された「画像特徴data」は、「画像の固有特徴」というより、単に指定した実数画像値vector(ie.,画像)を随意に指定した実数値(class label)に射影するための数値合わせ的な結果に過ぎない==外部条件によって任意に変動する。

画像の固有特徴 : 各種moments, 輝度HIST、HOG、SIFT、topology不変量、、、

【4】
D-CNNでやっている事は本質的に、複数のdata値(説明変数・自変数)を同一関数値に変換する射影関数と同じ。。。物性的な解釈ができず、数値計算上に成り立つための仕組みに過ぎず、
関数値が同じと言っても、対応する自変数同士の間のいかなる数値関係や数値の特性及び共通性を議論するのは無意味。
即ち、人工特徴抽出の場合のように、画像特徴間の差や距離を測る事はD-CNNには通用しない

お願い

間違った処ご指摘お願いします。

leilei👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MasashiKimura

2018/03/23 22:55

何が聞きたいのかよくわからないです。
oookabe

2018/03/29 11:21 編集

意図が分かりにくて、御免なさい!  この分野に入ったら、単純にどの関数をどのように使ったら良いのかというような質問以外、いろいろ原理的、概念的な議論を行うべき処が多いのです。  自分はそのような心得や関連性のある疑問をまとめて出したつもりです。 ★★ どの文に関しても皆さんのご意見をお伺いしたいと思います。
guest

回答1

0

ベストアンサー

【1】
D-CNNでは
米、車、海藻、虎 、、、のような外観特徴が人間からすれば完全に異なるobject同士を任意に組み合わせて一つの画像カテゴリー(class)に指定してトレーニングする可能だし、任意の実数label(scalar or vector)を指定可能
{数学根拠:NNでは任意の関数を生成可能}

 まあ、そんなのはD-CNNに限った話じゃないですよ。SVMでもRandomForestでも人間であっても簡単にできるのであって。

【2】
D-CNNでは
同一objectであっても、D-CNNにより抽出された「画像特徴data」はそのobjectが属するclassの他のメンバーの画像内容に左右され、一定ではない!

 その通りです。もっと言えば、そのobjectが属さないclassのデータにも左右される(アメリカ人と日本人を分類するなら「英語を理解するか」「白人か」みたいな特徴で良いけど、イギリス人とカナダ人のクラスを増やすとややこしくなるみたいな)。

【3】
同一objectであっても、D-CNNにより抽出された「画像特徴data」はそのobjectが属するclassのlabel値に左右される (突飛!)

 理屈の上ではそうなります。実際にどの程度変わってくるのかは何とも言えません。

【4】
D-CNNは本質的にvector量子化方法の一つ。

 ちょっと違うのでは? 別にクラスタリングとかしてる訳ではありませんし。

【1】
D-CNNに抽出された「画像特徴」は人間の視覚的な「画像特徴」とは全然違う概念な量であり
人工画像特徴抽出のようなvisual semantic 性を持たない。
{D-CNNに抽出された「画像特徴data」を可視化してedgeや平滑された部品をvisual的な要素に見えるのは単に元々は有意画像のため、それに対する加重平均処理(filter,所謂「convolution」) の結果も元の画像内容を反映しているに過ぎない }

 人間の視覚的な「画像特徴」なんて解明されてない訳ですし、visual semantic 性も計量する方法を持ってこないとまず議論できないのでは。

【2】
同じclassに属するobjectであっても D-CNNによって抽出された「画像特徴」はまちまちで、全然共通性を持たない可能性が高い(可比性なし)。

 同一のD-CNNによって抽出された特徴であれば、(少なくとも出力層に近い側では)同じclassのデータはそれなりに「近く」にまとまる可能性が高いです。そうしないと分類できませんから。逆に、入力層に近い側だとなんじゃこりゃってなる可能性は高いです。

【3】
D-CNNに抽出された「画像特徴data」は、「画像の固有特徴」というより、単に指定した実数画像値vector(ie.,画像)を随意に指定した実数値(class label)に射影するための数値合わせ的な結果に過ぎない==外部条件によって任意に変動する。
画像の固有特徴 : 各種moments, 輝度HIST、HOG、SIFT、topology不変量、、、

 まあ、それはそうでしょう。

【4】
D-CNNでやっている事は本質的に、複数のdata値(説明変数・自変数)を同一関数値に変換する射影関数と同じ。。。物性的な解釈ができず、数値計算上に成り立つための仕組みに過ぎず、
関数値が同じと言っても、対応する自変数同士の間のいかなる数値関係や数値の特性及び共通性を議論するのは無意味。
即ち、人工特徴抽出の場合のように、画像特徴間の差や距離を測る事はD-CNNには通用しない。

 これはちょっと判断に迷うところで、実際に画像分類できてるんだから・・・という話になってしまいます。
たとえば、下のリンクに示すようなvisual semantic embeddingのようなタスクも実際に上手く機能してる訳で、それなりに「意味」のある特徴空間にはなってると解釈するのが妥当。
Deep learning を用いた画像から説明文の自動生成に関する研究の紹介 https://www.slideshare.net/metaps_JP/deep-learning-50383383

 汎化性能を確保できるような形で数値合わせ的なことが上手くできれば、個人的には十分意義のあることと思います。

投稿2018/03/24 22:15

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

leilei

2018/03/26 15:34 編集

>【2】 ...はそれなりに「近く」にまとまる可能性が高いです。そうしないと分類できませんから。 これどうでしょう。疑問ですね。 後段のDNNにとって、入力パターンを同じclass labelに付するにはそれらのパターンが近いである必要ないと思います。 だって、どんな異なるパターンであれ、DNNが同じclassに訓練される能力を持っていますから。 これこそ、原文 『同じclassに属するobjectであっても D-CNNによって抽出された「画像特徴」はまちまちで、全然共通性を持たない可能性が高い(可比性なし)。 』 の真髄ではないでしょうか。
hayataka2049

2018/03/26 15:44

>どんな異なるパターンであれ、DNNが同じclassに訓練される能力 これは学習データについては成立します。カラスの画像と掃除機の画像に同じタグ貼っ付けて学習させれば、そのタグを出力するようになる訳で。 ただ、それがまったくのデタラメだと汎化が効かず、予測時に悲惨な結果になります。現実のニューラルネットがそうなっておらず、高い汎化性能を発揮している以上、どうなんでしょうね? 出力層の1~2層手前の出力を考えるとして、カラスと掃除機の例でも次のどちらかに近いものになっているでしょう。 ・カラス画像と掃除機画像を「近く」に写像 ・カラス画像と掃除機画像をそれぞれまとまった領域に写像(残った1~2層で同じタグにまとめる) ですから、上位レイヤの「画像特徴」をt-SNEか何かで可視化すれば、それなりに人が見ても納得の行く結果になるだろう、と期待しています。やったことがないので、実際にどうなるのかはわかりませんが。
leilei

2018/03/27 01:13 編集

hayataka2049様が出されたリンク https://cs.stanford.edu/people/karpathy/cnnembed/ を拝見する前に傲慢と偏見で言いますと、 CNNは単に後端の数値合わせ都合のためにオリジナルのデータを変換するだけなので、カラスと掃除機から同じビジュアル的な画像特徴を抽出するのは難しいし、必要性もないと思います。なぜならば後端の分類器としてのDNNが異なるビジュアル的な画像特徴も同じタグに付けるのは可能ですから。 これからも分かるように同じカテゴリに分類するためにCNNの後端への最終的な出力(訓練結果など)は唯一ではない可能性が高いですね。 これについて、どなたに御伺いしたいと思います。即ち ★ CNN-DNNシステムの最適解(SGDなどによって確立したネット係数)は唯一かどうか?
oookabe

2018/03/28 14:42 編集

皆さん 有難うございます。 hayataka2049さんが提供されたリンクに関して 肝心の t-SNE はまるで、SOMと異曲同工のようで、射影空間において距離的な概念はありますが、 t-SNEはそのような目的のためにデザインされたもので、一概にDNNやCNNの特徴を代表できるどうか、 非常に疑問です。
hayataka2049

2018/03/28 15:20

とりあえず、alexnetの出力層1つ手前の層の出力をt-sneで可視化したらああなったということで、「画像特徴間の差や距離を測る事はD-CNNには通用しない」の反証は得られたということで良いのでは? それなりにDNNが「距離的な概念」のある空間にデータを張れてることがわかったので、めでたしめでたし、です。 まあ、違う解釈をすると、あのt-sneで可視化された「特徴」はあとは出力層(活性化関数:softmax)に入って出力されるだけな訳で、あそこで滅茶苦茶になってたら分類が成立しない(汎化性能がまったく得れない)ということにもなります。 もっと入力層に近い側では「距離的な概念」は通用しない可能性がある、という考え方もあるかと思います。
oookabe

2018/03/29 05:15 編集

hayataka2049さん 面白い話有難うございます。 ただ、気になる事として、 ① そもそも画像の物理的な内容(画素の分布)が非常に似ている画像であれば、当然CNNの処理結果も  同じで、距離が近い ⇒ この場合は天然的に「距離」という概念は意味があり、どんな距離測度で測っても0に近いのです。 ② そのt-sneに対する訓練方法です。 もし t-sneがalexnet(CNN)の出力層1つ手前の層の出力を自分の入力として事前に訓練されたのであれば(labelはalexnetの訓練データのと同じ)、同じカテゴリの画像に対してCNNの出力がどんなにバラバラであっても、いかなる既知の距離測度を使っても意味のある値が得られなくても、t-sneが同じlabelに変換する事ができるので、2Dにおいて同じか近い点に射影されますね。 つまり、距離が近いのは t-sneがDNNとしての機能【注】であり、必ずしもCNNがそういう機能を持っている事は証明されたわけでもないではと危惧しています。 【注】DNNはどんなに異なる入力パターンに対しても指定された同一labelに変換(射影)できます。 ★ いま問題の実質として、かなり画像内容(物理的に)異なってもDNNによって同じカテゴリに分類できますが、この時、前段のCNNが同じ特徴データを出力するかどうかという事です。 ーーーーー私は無理があり、そして必要性もないと思います。
hayataka2049

2018/03/29 05:07

t-sneは教師なしの次元削減手法で、labelという概念はありません。また、t-sne自体はDNNでもありません。 リンク先の画像は純粋にCNNの(敢えて言えば)特徴抽出能力を可視化したものです。その点に関して誤解されているようです。
oookabe

2018/03/29 09:55 編集

なるほど!  hayataka2049さんご教授有難うございます。 t-SNEの距離測度は二つ画像の同じ位置にある画素値のEuclidean距離の和であり、 その上、softmaxで確率分布を表現します。ーーー非常に物理的。 t-SNE visualization of CNN codes (https://cs.stanford.edu/people/karpathy/cnnembed/)の実験画像からすれば、objectが内容的に同じであっても画像の物理的な変化も多いので CNNがオリジナル画像の抽象的な特徴を抽出できなければ、t-SNEは近所位置へ射影できないはずです。 -----という事は、CNNによる抽出されたデータ(最後の出力)には「一定の可比性」があると言う結論ですね。 CNNのこのよう機能は認識問題に一定の「汎化性」を与えます---CNN-DNNが汎化能力を有する原因の一つだと思います。 ただ、そして同じカテゴリに指定されているにも関わらず、オリジナル画像が相当違えば、どうなるでしょう。⇒ CNNは尚同じ抽象的な特徴を抽出できるかどうか、▼不明▼です。 【ただし、 CNN-DNNシステムによる分類問題であれば、  CNNは同じカテゴリのobject画像を同じ特徴を抽出する必要性はないと考えられますが】
hayataka2049

2018/03/29 10:31

>同じカテゴリに指定されているにも関わらず、オリジナル画像が相当違えば、どうなるでしょう それに関しては割と「謎」な部分がありますが、やはり上に書いたように「強引に共通する特徴をまとめてくる」か「画像の『意味』を反映するような特徴を得ることで分類が行えるので、SOMみたくどうにか教師ラベルに依存せずそれを作る(その場合は貼ったt-SNE visualizationと近いものが得られる)」かのどちらかになるのではないでしょうか。 どちらに落ち着くかは与えたデータ依存かもしれません。たとえば、 カラス+掃除機,猫の2クラス分類タスク――これはカラス+掃除機を強引に「近く」に写像してしまった方が合理的です。猫とそれ以外がわかれば分類できる。 カラス+掃除機, ....他のクラス1000個くらい――これなら、カラスは「スズメ」のクラスに近づくとか、掃除機は「空調ダクト」クラスに近づくと言った可比性が結果的に得られるかもしれません。カラス+掃除機に引きずられて、「家電」のクラスタと「鳥」のクラスタがやけに近くに来たりするといったことも起こり得るかもしれない。あるいは、そのような写像はけっきょく他のクラス1000個くらいを分類する上では不利なので、カラス+掃除機クラスの誤差は大きめに落ち着くけどそれ以外のクラスは分類できるという展開もあるかも。 まあ色々考えられますね。▼不明▼というのは究極的には正しいです(ある意味やってみればわかるといえばわかりますが・・・シチュエーションによって違う結果が出るでしょうし、けっこう難しい)
oookabe

2018/03/31 13:59

hayataka2049さん とても勉強になりました。 本当にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問