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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

410閲覧

画像認識におけるニューラルネットワークの利用方法について

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

0クリップ

投稿2021/04/15 09:46

編集2021/04/16 06:57

画像認識にはニューラルネットワークを基本使っているという事を聞いてその勉強をちょいちょいしてきたわけですが、
ある画像の中に含まれる、特定の画像を□で囲んだり、数を数えるためには、
対象と対象の間にある、何もない部分、空白を「空白」として認識する、例えば、
〇の数を数えるのであれば、
〇 〇 〇 〇〇〇を、これをそのまま認識するのではなく、「〇」「空白」「〇」「空白」・・・
と認識しなければならない、
この「空白を空白として切り取って認識」する問題を、分割問題と呼ぶこととしますが、

ニューラルネットワークを使っていかに分割問題を解決しているのか、よく分かりません、教えて頂きたいのですが。

また、画像中の特定の画像の「数を数える」だけって、ニューラルネットワークは本当に必須ですかね??

イメージ説明

イメージ説明

seastar3👍を押しています

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/04/15 13:16

んーなんかその定義とは違うようですね、訂正します。
退会済みユーザー

退会済みユーザー

2021/04/16 05:25

添付図4使うとどんな感じになりますかね・・少し面倒ですが・・ (表切れてますが無視して下さい)
quickquip

2021/04/16 07:04

> また、画像中の特定の画像の「数を数える」だけって、ニューラルネットワークは本当に必須ですかね?? もしかしてこの「数を数える」は、Excelの24行やS列,AD列のことを言ってますか?
退会済みユーザー

退会済みユーザー

2021/04/16 07:55

いえ、この例でいうと、例えば「1」の画像の数になり、左図であれば1個になりますね。
seastar3

2021/04/17 02:52

この質問には、python言語のarrayもscikit-learnなどもでてきません。 タグは、機械学習、ディープラーニング、画像認識、ニューラルネットワーク、パーセプトロンなどかふさわしいと思います。
guest

回答2

0

ベストアンサー

やはり、何回も人工知能の専門用語が出てきて難解ですね。
機械学習モデルが画像認識のためだけではないという点をアピールしたわけですが、機械学習モデルの手掛かりにしていることはできあがってみないと分からないということです。naganumaさんの取り上げているのは、訓練データ1つ分に過ぎないし、訓練データには見つからない画像も見つからないという情報とともに用意することもあります。
私の回答の「勾配降下法・・・」以降の部分は、連立方程式の解き方を空間上のグラフの問題として説明したので、画像認識と紛らわしかったですね。お詫びいたします。
同様のことをグラフではなく複雑な連立方程式として説明すれば、機械学習モデルの実体は連続した行列式に被判定データを掛けていくと意味のある判定結果を出力されるその方程式の集まりです。例えばnaganumaさんが示された画像にあてはめて、23コマ×12行の訓練データ(つまり276ドット)が100枚ある形の多元連立方程式を考えるとします。1ドットずつの明暗情報が手掛かりとして、個々の黒さの数値を方程式にすれば、

k1の1 * x1の1 + k1の2 * x1の2 + ・・・ + k1の276 * x1の276 + a1の276 = y1 k2の1 * x2の1 + k2の2 * x2の2 + ・・・ + k2の276 * x2の276 + a2の276 = y2 : k100の1 * x100の1 + k100の2 * x100の2 + ・・・ + k100の276 * x100の276 + a100の276 = y100

のように方程式が、100行並びます。さらに

a1 * y1 + a2 * y2 + ・・・ + a100 * y100 = 判定値

というふうに連立方程式が連続して成り立ちます。この各x1からx276のデータの集合100種類と正解の判定値が与えられたときに、ディープラーニングの解き方としては、しらみつぶしに各係数及び定数の値を取り替えていき、よりふさわしい方程式を構成しようとします。その値の変え方にコツがあり、微分や確率・統計やベクトルの内積などの高度な数学が応用されます。(その説明が難しいので私はあえて高次元立体の操作として説明しました。)そして、いったん検証用のデータで正解率を確かめて、その正解率が100%に近ければ実用的な機械学習モデルとして使えるし、正解率が低い場合は、データの選定や取り上げる項目の見直しなどの修正をおこない、機械学習モデルを作り直します。
最終的にふさわしい方程式群が完成したら、実際の画像をこの方程式群を通したときに正しい判定値、例えば存在可能性90%とか存在可能性1%とかと判定されます。
このできあがった方程式群の判定ルールが、お考えのように空白に目を付けたものなのか、斜めや縦の明暗の法則性に目を付けたものなのかは、分からないのです。今後の研究分野として、その法則性を見つけ出して、新しい科学的な発見となるようなことが起きるかもしれませんが、画像だからこの法則性をとか、音声認識だからのこの法則性をとか、景気判断だからこの法則性をとか導くのはむずかしいのです。

私の説明ではややこしいばかりかもしれませんので、機械学習の仕組みを親切に図を交えて分かりやすく説明してくれている次の記事が参考になると思います。
【3分で理解】ニューラルネットワークを解説!前編「パーセプトロン」とは?

投稿2021/04/17 02:49

編集2021/04/17 03:04
seastar3

総合スコア2285

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

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

0

最後の問いについては、2012年にAIによる画像認識大会ILSVRCで、トロント大学の「AlexNet」が初めてニューラルネットワークを用いてディープラーニングの手法により卓越した精度で優勝したことがきっかけで、現代のディープラーニングブームが起きているということから、有効性は明白でしょう。
また、質問のような照らし合わせた画像を探し出しては判定している手法とは違っています。むしろ、織物の横糸をすべて上から順に一直線に並べてから、探す画像の同様の一本の糸を尺度を変化させてはずらしながら、部分的な共通箇所が何回出てくるかを数値化するような計算をとります。その際に尺度の変化やそれぞれの糸の切れ目の位置の調節などを担うのがニューラルネットワークの途中の行列式の数値群になります。
もう一つ例えれば、人が好きな漫画家やアーティストの作品に触れ続けることで、初めて見聞きする作品でもその人のものか、モノマネなのか微妙に気が付くような判定とディープラーニングの判定方法は似ています。人間の画像認識、音楽認識がデジタルなものではなく、脳内にパーセプトロンが形成されてファジーな総合的な感覚を示すのです。
なお、画像の機械学習を効率的にするために画像の圧縮する畳み込みの手法もあって、実際はもっと複雑な手順も加わります。

投稿2021/04/15 17:08

seastar3

総合スコア2285

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

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

退会済みユーザー

退会済みユーザー

2021/04/16 05:25

添付図4使うとどんな感じになりますかね・・少し面倒ですが・・ (表切れてますが無視して下さい)
seastar3

2021/04/16 06:11

私の回答は、訓練データからパーセプトロンを形成する機械学習モデルが作られて、その機械学習モデルが実際の被判定画像の該当可能性を答えるということを説明したものです。  訓練データと正解データとの1対1の対応について示すことはアプローチが違います。私には、訓練データによって導き出された機械学習モデル(パーセプトロンの実体としての連続した行列式)がいかなる形かは説明できません。 機械学習の入門的な本で数式を理解するか、訓練画像を数十件、ディープラーニング処理して、発生した機械学習モデルの連続した行列式を観察してみるかなりして、確認するのが合理的なアプローチだと考えます。
退会済みユーザー

退会済みユーザー

2021/04/16 07:56 編集

Excelの追加画像を見て頂きたいのですが、前から疑問だったのですが、 横の帯(つまり各行)の「数値の合計」だけを比較しても、無理がありませんかね? たとえばこの図では、1の隣に2がありますが、この2のせいで、1の存在が薄められてます、 2じゃなく、7とかだったら、もっと(上の方の行は)存在が薄められ、ほぼ消されてしまうと思います。 まぁもっと具体的にいうと、エクセル図の右図のように、「1」という数字は上から、 122111135・・・と遷移していきますが、 左図のように「2」が横にあるせいで、各行の和は、5665333333・・・となってしまっています。 つまり、初めは5665と、増えて減っている点では「1」と似た遷移ですが、それ以降は3で一定であり、これは「1」の特徴とかけ離れています。 そこで思ったのですが、行の和だけでなく、列の和(エクセル図右図だと、239210)、 更には、斜めの和(左隅から右隅、右隅から左隅)等を取って、 それぞれを入力値としてニューラルネットワークを組んでいるんじゃないかと思ったのですが、 どうでしょうか??
seastar3

2021/04/17 15:28 編集

そうかもしれないし、そうでないかもしれないと答えざるを得ません。 ニューラルネットワークの観点に移っていただいたのは、安心なのですが、機械学習によって強調されるのが、お考えのようなデータの縦軸の手掛かりなのか、色合いなのか、輪郭の太さやカーブなのか、どの点に特に注目して機械学習モデルが判定値を導いているのかは、まちまちだし人間側には分からないのです。 だからこそ、画像だろうが音声だろうが気象データだろうが一本の糸として訓練データを流し込むことで機械学習モデルは自分なりの分析方程式を組み立てるのです。勾配降下法のしくみは画像の空白がどうのこうのという視点ではなく、多次元立体の表面の傾きを偏微分で均衡点までなぞっていく動作です。測定項目が多種類になるほど、立体の次元は上がっていき、それに対応して人間には認識できなくなっていくのです。 つまり、抽象的な機械学習モデルについて一面的な法則性を探る視点でとらえることは限界があると言うことです。
退会済みユーザー

退会済みユーザー

2021/04/17 01:36 編集

後半が難しく過ぎてよく分からないのですが・・・ 画像なのでとりあえず元は二次元ですよね、多次元と言われても・・・ 普通に考えて上記の理由から、行ごとの1本の糸を分析しても限界があると思うのですが。。 もしかして行を事細かに分析する事で、同時に列も分析する事になってるんですかね。 行を1列飛ばし、2列飛ばし、、とや分析していけば、やがて1行飛ばしになり、列の分析になる・・みたいな。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問