Python とディープニューラルネットワークを使用して画像を認識する方法は?

Python とディープニューラルネットワークを使用して画像を認識する方法は?

[[219378]]

見れば分かります。

わずか 12 行の Python コードで、独自のマシン ビジョン モデルを構築し、大量の画像を迅速かつ正確に識別できます。ぜひお試しください!

0. ビジョン

進化のおかげで、人間は画像の処理が非常に効率的になりました。

ここで写真をお見せします。

[[219379]]

もし私があなたにこう尋ねたら:

写真に写っている猫と犬はどちらがわかりますか?

あなたはすぐに、深く侮辱されたと感じるかもしれません。そして彼は大声で私に尋ねました。「私のIQに何か問題があると思いますか?」 !

落ち着け。

別の言い方をしてみましょう:

猫と犬の写真を厳密なルールに区別し、それをコンピューターに教え、私たち人間に代わって何千もの写真を区別できるようにする方法について説明していただけますか?

ほとんどの人にとって、この時に感じるものは屈辱ではなく、プレッシャーです。

根気強い人なら、画像内の特定の位置のピクセルの色、特定の部分のエッジの形状、特定の水平位置の連続した色の長さなど、さまざまな判断基準を試してみることができます。

コンピュータにこれらの説明を伝えると、確かに左側に猫がいて右側に犬がいることがわかります。

問題は、コンピューターが本当に猫の写真と犬の写真の違いを区別できるかどうかです。

もう一枚の写真をお見せします。

[[219380]]

ほぼすべてのルール定義を書き直す必要があることがわかります。

機械が、ほぼ偶然の方法で 2 枚の写真に写っている動物をようやく正しく識別できたので、私は新しい写真を取り出しました...

[[219381]]

数時間後、あなたは諦めることにしました。

落胆しないでください。

あなたが直面している問題は新しいものではありません。最高裁判所長官も同じ問題を抱えていた。

[[219382]]

1964 年、米国最高裁判所のポッター・スチュワート判事は、映画に登場する特定の画像の分類に関して、ジャコベリス対オハイオ州の訴訟で有名な発言をしました。「私はこの概念について簡潔かつ正確な定義を与えるつもりはありませんが、見れば分かります。」

原文は次のとおりです。

今日は、この簡潔な説明(「ハードコアポルノ」)に含まれると私が理解している素材の種類をさらに定義しようとはしません。おそらく、それをわかりやすく説明することは決してできないでしょう。しかし、私はそれを見ればわかりますし、今回の件で取り上げた映画はそうではありません。

精神文明建設の必要性を考慮して、この段落は翻訳されません。

人間はコンピュータに対して画像認識のルールを詳細かつ具体的かつ正確に説明することはできません。ということは、コンピュータは画像を認識できないということでしょうか?

もちろん違います。

2017 年 12 月号の Scientific American 誌では、「人間のように見る AI」が 2017 年の新技術の 1 つとして定義されました。

自動運転車の素晴らしさについて聞いたことがありますか?画像の機械認識なしでこれを行うことはできますか?

顔認識を使用して新しい iPhone X のロックを解除する方法を友達が (何度も) 教えてくれたことがあるかもしれませんね。画像の機械認識なしでこれを行うことはできますか?

[[219383]]

医療分野では、科学的な画像(X線など)を分析するコンピュータの能力が、長年の専門経験を持つ医師の能力を超えています。画像の機械認識なしでこれを行うことはできますか?

[[219384]]

一瞬少し戸惑うかもしれません。これは奇跡なのでしょうか?

いいえ。

コンピュータが行うことは学習することです。

十分な数のサンプルから学習することで、マシンはデータ自体からモデルを構築できます。これには多数の判断基準が関係する可能性があります。しかし、人間が機械にこれを伝える必要はありません。自分自身で完全に理解し、習得します。

興奮するかもしれません。

さて、さらにエキサイティングなニュースをお伝えしましょう。画像分類システムを自分で簡単に構築できるのです!

信じられませんか?以下の手順に従って試してみてください。

1. データ

この質問はそれほど新しいものではないので、猫と犬を区別するのはやめましょう。

ドラえもんを特定してみましょうか?

はい、ドラえもんについて話しています。

[[219385]]

誰がそれを区別するのでしょうか?

最初はティラノサウルスを探したかったのですが、見た目があまりにも違っていたので、それはズルだと感じました。

[[219386]]

ドラえもんはロボットなので、それを区別するために別のロボットを見つけましょう。

ロボットと言えば、すぐに思い浮かぶのがそれです。

[[219387]]

そう、ロボットのWALLEです。

ドラえもんの写真を119枚、ウォーリーの写真を80枚用意しました。画像は、この Github プロジェクト (https://link.jianshu.com/?t=https%3A%2F%2Fgithub.com%2Fwshuyi%2Fdemo-python-image-classification) にアップロードされています。

圧縮パッケージをダウンロードするには、このリンク (https://link.jianshu.com/?t=https%3A%2F%2Fgithub.com%2Fwshuyi%2Fdemo-python-image-classification%2Farchive%2Fmaster.zip) をクリックしてください。次に、ローカルで解凍します。デモディレクトリとして。

解凍後、ディレクトリ内にイメージ フォルダが表示されます。このフォルダには、doraemon と walle という 2 つのサブディレクトリが含まれています。

ドラえもんのディレクトリを開いて、どんな写真があるのか​​見てみましょう。

ご覧の通り、ドラえもんの絵は本当に多彩です。様々なシーン、背景色、表情、動作、角度…など。

これらの画像はサイズが異なり、アスペクト比も異なります。

『ウォーリー』を見てみましょう。似たような状況です。

データはすでにあるので、環境設定を準備しましょう。

2. 環境

Python 統合ランタイム環境 Anaconda を使用します。

Anaconda の最新バージョンをダウンロードするには、この Web サイト (https://link.jianshu.com/?t=https%3A%2F%2Fwww.continuum.io%2Fdownloads) にアクセスしてください。

ページを下にスクロールしてダウンロード場所を見つけます。現在使用しているシステムに基づいて、Web サイトはダウンロードするのに適したバージョンを自動的に推奨します。私はmacOSを使用しており、ダウンロードファイルの形式はpkgです。

ダウンロード ページ領域には、左側に Python 3.6、右側に 2.7 があります。バージョン2.7を選択してください。

ダウンロードした pkg ファイルをダブルクリックし、中国語のプロンプトに従って手順ごとにインストールします。

Anaconda をインストールした後、TuriCreate をインストールする必要があります。

「ターミナル」(Linux、macOS)または「コマンド プロンプト」(Windows)に移動し、ダウンロードして解凍したサンプル ディレクトリを入力します。

次のコマンドを実行して、turi という名前の Anaconda 仮想環境を作成します。

次に、turi 仮想環境をアクティブ化します。

この環境では、TuriCreate の最新バージョンをインストールします。

インストール後、以下を実行します。

これにより、Jupyter ノートブック環境に移行します。新しい Python 2 ノートブックを作成しましょう。

これにより、空白のノートブックが作成されます。

左上隅のノートブック名をクリックし、意味のあるノートブック名「demo-python-image-classification」に変更します。

準備が完了したので、プログラムの作成を開始できます。

3. コード

まず、TuriCreate パッケージを読み込みます。これは Apple が買収した機械学習フレームワークであり、開発者に非常にシンプルなデータ分析と人工知能インターフェースを提供します。

  1. turicreate をtcとしてインポートします

画像が保存されているフォルダ image を指定します。

  1. img_folder = '画像'  

前述のように、画像の下には「ドラえもん」と「ウォーリー」の 2 つのフォルダーがあります。将来的に他の画像(猫や犬など)を識別する必要がある場合は、異なるカテゴリの画像を画像内の異なるフォルダに保存してください。これらのフォルダの名前は、画像のカテゴリ名(猫と犬)です。

次に、TuriCreate にすべての画像ファイルを読み取り、データ データ フレームに保存させます。

  1. データ = tc.image_analysis.load_images(img_folder、with_path= True )

ここにエラーメッセージが表示される場合があります。

  1. サポートされていない画像形式です。サポートされている形式は JPEGおよびPNG ファイルです: /Users/wsy/Dropbox/var/wsywork/learn/demo-workshops/demo-python-image-classification/image/walle/.DS_Store

この例では、TuriCreate が認識せず、画像として読み取ることができない .DS_Store ファイルがいくつかあることが示されます。

これらの .DS_Store ファイルは、アイコンの位置や背景色など、ディレクトリのカスタム プロパティを保存するために Apple の macOS システムによって作成される隠しファイルです。

この情報は無視しても構いません。

次に、データフレームの内容を見てみましょう。

  1. データ

ご覧のとおり、データには 2 つの情報列が含まれており、最初の列は画像のアドレス、2 番目の列は画像の長さと幅の説明です。

ドラえもんの写真を 119 枚、WALL-E の写真を 80 枚使用したため、データの総量は 199 枚になります。データ読み取り整合性検証に合格しました。

次に、さまざまな画像のラベル情報を TuriCreate に知らせる必要があります。つまり、ドラえもんの写真ですか、それともウォーリーの写真ですか?

そのため、最初からさまざまな画像を分類し、異なるフォルダーに保存する必要があります。

この時点で、フォルダー名を使用して写真をマークします。

  1. data[ 'label' ] = data[ 'path' ].apply(lambda path: 'doraemon' if 'doraemon'  パスelse   「ウォール

このステートメントは、doraemon ディレクトリ内のイメージを、data データ フレーム内で doraemon としてマークします。それ以外の場合、それらはすべてウォールとみなされます。

ラベル付けされたデータフレームを見てみましょう。

  1. データ

ご覧のとおり、データのエントリ (行) の数は同じですが、画像のカテゴリを示すラベル列が追加されています。

データを保存しましょう。

  1. data.save( 'doraemon-walle.sframe' )

この保存アクションにより、現在のデータ処理結果を保存できます。以降の分析では、この sframe ファイルを読み込むだけでよく、最初からフォルダーを扱う必要はありません。

この例では、何の利点も見られないかもしれません。しかし、画像のサイズが数 GB または数 TB になると、分析と処理を実行するたびにファイルを最初から読み取ってマークするのは非常に時間がかかります。

データフレームをもう少し詳しく調べてみましょう。

TuriCreate は、データフレーム情報を直感的に探索するのに役立つ非常に便利な explore() 関数を提供します。

  1. データ探索()

このとき、TuriCreate はデータ フレームの内容を表示するページをポップアップ表示します。

最初にデータ フレームを印刷したときは、画像のサイズしか表示できませんでしたが、現在は画像の内容を参照できます。

画像が小さすぎると思われる場合は、問題ありません。サムネイルの上にマウスを置くと、拡大画像が表示されます。

データフレームが探索されます。ノートブックに戻ってコードを書き続けましょう。

ここでは、TuriCreate にデータ フレームをトレーニング セットとテスト セットに分割させます。

  1. トレーニングデータ、テストデータ = data.random_split(0.8、シード=2)

トレーニング セットは、機械が観察によって学習できるようにするために使用されます。コンピュータはトレーニング セットのデータを使用して独自のモデルを構築します。しかし、モデルはどれほど効果的でしょうか(たとえば、分類の精度はどれほどでしょうか)?検証テストを実行するには、テスト セットを使用する必要があります。

これは、教師が試験問題のすべてを生徒の宿題や練習問題として使用すべきではないのと同じです。生徒にこれまで見たことのない質問をテストすることによってのみ、生徒が正しい問題解決方法を習得したのか、それとも宿題の答えをただ暗記しただけなのかを区別することができます。

TuriCreate に、データの 80% をトレーニング セットに割り当て、残りの 20% をテスト用に取っておくように依頼しました。ここでは、データ分割の一貫性を確保するために、ランダム シード値を 2 に設定しました。結果を繰り返し検証するため。

さて、マシンにトレーニング セット内のすべてのデータの観察と学習を開始させ、独自にモデルを構築してみましょう。

以下のコードを初めて実行するときには、しばらく待つ必要があります。 TuriCreate は Apple Developer Web サイトからデータをダウンロードする必要があるためです。これらのデータはおよそ1億です。

かかる時間は、ユーザーと Apple のサーバー間の接続速度によって異なります。とにかく、私にとってはダウンロードはかなり遅いです。

幸いなことに、必要なのは最初のダウンロードだけです。それ以降の繰り返し実行では、ダウンロード手順はスキップされます。

  1. モデル = tc.image_classifier.create (train_data、ターゲット = 'ラベル' )

ダウンロードが完了すると、TuriCreate のトレーニング情報が表示されます。

  1. 画像のサイズ変更中...
  2.  
  3. サイズ変更された画像特徴抽出を実行しています...
  4.  
  5. 完了 168/168
  6.  
  7. 進捗: 検証セットの作成 トレーニング データ5 パーセントから。これにはしばらく時間がかかる場合があります。
  8.  
  9. 検証追跡を無効にするには、 「validation_set=None」を設定できます。

TuriCreateh を使用すると、画像のサイズを変更したり、画像の特徴を自動的にキャプチャしたりすることができます。次に、トレーニング セットからデータの 5% を検証セットとして抽出し、継続的に反復して最適なモデルを実現するための最適なパラメーター構成を見つけます。

ここに警告メッセージが表示される場合がありますが、無視してください。

次のメッセージが表示されたら、トレーニングが正常に完了したことを意味します。

数ラウンド後には、トレーニング精度と検証精度の両方がすでに非常に高いことがわかります。

次に、取得した画像分類モデルを使用して、テスト セットで予測を行います。

  1. 予測 = model.predict(テストデータ)

予測結果(一連の画像に対応するタグのシーケンス)を predictions 変数に保存します。

次に、TuriCreate に、テスト セットでのモデルのパフォーマンスについて問い合わせました。

急いで読み進めないで、結果の正確率はどれくらいだと思いますか? 0 から 1 までの数字を推測します。

推測できたら、続けてください。

  1. メトリック = model.evaluate(test_data)
  2.  
  3. print(metrics[ '精度' ])

精度の結果は次のとおりです。

  1. 0.967741935484

初めて見たとき、衝撃を受けました。

トレーニングには 100 個以上のデータ ポイントしか使用していませんでしたが、テスト セット (マシンがこれまで見たことのない画像データ) で非常に高い認識精度を達成することができました。

これが精度計算コードの間違いではないことを検証するために、実際に予測結果を見てみましょう。

  1. 予測

予測されたトークンシーケンスが次のように出力されます。

  1. データ型: 文字列
  2.  
  3. 行数: 31
  4.  
  5. [ 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 、 'ドラえもん' 、 'ドラえもん' 'ドラえもん' 、 'ドラえもん' 、 'ドラえもん' 、 'ドラえもん' 、 'ドラえもん' 、 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 、 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 、 'ドラえもん' 、 'ドラえもん' 、 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 、 'ドラえもん' 、 'ドラえもん' 'ドラえもん' 、 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' ]

実際のラベルを見てみましょう。

  1. test_data[ 'ラベル' ]

実際のトークンシーケンスは次のとおりです。

  1. データ型: 文字列
  2.  
  3. 行数: 31
  4.  
  5. [ 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 、 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん''ドラえもん' 、 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 、 'ドラえもん' 、 'ドラえもん' 、 'ドラえもん' 'ドラえもん' 'ドラえもん' 、 'ドラえもん' 'ドラえもん' 'ドラえもん' 'ドラえもん' 、 'ドラえもん' 'ドラえもん' 'ドラえもん' 、 'ドラえもん' 'ドラえもん' 'ドラえもん' ]

どの画像が誤って予測されたかを調べてみましょう。

もちろん一つずつ確認することもできます。しかし、テスト セットに数万の例が含まれている場合、これは非効率的になります。

私たちの分析方法は、まず予測されたラベルシーケンス (predictions) と元のラベルシーケンス (test_data['label']) の間の不一致を見つけ、次にテストデータセット内でこれらの不一致の場所を表示することです。

  1. test_data[test_data[ 'label' ] != 予測]

31 個のテスト データのうち、ラベル予測が間違っていたのは 1 つだけであることがわかりました。元のタグは WALL-E でしたが、モデルは DORAEMON であると予測しました。

このデータ ポイントに対応する元のファイル パスを取得します。

  1. wrong_pred_img_path = test_data[予測 != test_data[ 'ラベル' ]][0][ 'パス' ]

次に、画像を img 変数に読み込みます。

  1. img = tc.Image(間違った予測img_path)

TuriCreate が提供する show() 関数を使用すると、この画像の内容を確認できます。

  1. 画像を表示()

ディープラーニングの問題の 1 つは、モデルが複雑すぎるため、機械がこの画像をどのように誤認したかを正確に判断できないことです。しかし、この絵のいくつかの特徴を見つけるのは難しくありません。ウォーリーに加えて、別のロボットがいます。

この映画を見たことがあるなら、2台のロボットの関係がわかるはずです。ここではこれについては議論しません。問題は、右上のロボットの頭と脳が丸く、角張ったウォーリーとはかなり異なって見えることです。しかし、ドラえもんも丸い頭と丸い脳を持っていることを忘れないでください。

4. 原則

前のセクションのコードを実行した後、独自の画像分類システムを構築する方法を理解できたはずです。原理に関する知識がなくても、このモデルを開発するという素晴らしい仕事を成し遂げました。そうじゃない?

原則に興味がない場合は、このセクションをスキップして「概要」をお読みください。

知識の深みに迫りたいなら、原則について話しましょう。

記述したコードはわずか 12 行ですが、構築したモデルは十分に複雑で高度なものになっています。それは伝説的な畳み込みニューラルネットワーク (CNN) です。

深層機械学習モデルの一種です。最も単純な畳み込みニューラル ネットワークは次のようになります。

一番左が入力層です。入力した画像です。この場合はドラえもんとウォーリーです。

コンピューターでは、画像はさまざまな色 (RGB、つまり赤、緑、青) に応じてレイヤーに保存されます。次の例のように。

解像度に応じて、コンピューターは画像の各レイヤーを特定のサイズのマトリックスとして保存します。特定の行と列の位置に対応して、格納されるのは単なる数字です。

そのため、コードを実行すると、TuriCreate が最初に画像のサイズを変更することがわかります。入力画像のサイズが異なる場合、次の手順は実行できません。

入力データを使用して、次の層である畳み込み層に順番に進みます。

畳み込み層は神秘的で複雑に聞こえるかもしれません。しかし、原理は非常に単純です。複数のフィルターで構成されています。各フィルターは小さなマトリックスです。

使用する際には、この小さな行列を入力データ上に移動し、行列と重なる元の位置にある数値と掛け合わせて足し合わせます。このように、元の行列は「畳み込み」後に数値になります。

次のアニメーション画像では、このプロセスを非常にわかりやすく説明しています。

このプロセスは、マトリックスから特定の機能を継続的に検索することです。この特徴はエッジの形状のようなものかもしれません。

次の層は「プーリング層」と呼ばれます。この翻訳は言葉を失います。 「集約レイヤー」または「サンプリングレイヤー」と翻訳する方がはるかに適切だと思います。以降、これを「サンプリング層」と呼びます。

サンプリングの目的は、機械が「正方形の左上隅には鋭いエッジがあるはずだ」と考えないようにすることです。実際、写真では、識別したいオブジェクトがずれている場合があります。そのため、集約サンプリングを使用して特徴の位置をぼかし、「特定の点」から「ある領域」に拡張する必要があります。

これが直感的にわかりにくい場合は、下のアニメーション画像を参照してください。

ここでは「Max-Pooling」が使用されます。元の 2x2 範囲をブロックとして使用し、そこから最高値を見つけて、新しい結果マトリックスに記録します。

役に立つルールは、レイヤーの数が右に移動し続けると、結果として得られる画像 (正式にはマトリックスと呼ぶべきもの) はどんどん小さくなりますが、レイヤーの数はどんどん増えていくということです。

この方法でのみ、画像から規則的な情報を抽出し、十分なパターンを習得することができます。

それでも満足できない場合は、この Web サイト (https://link.jianshu.com/?t=http%3A%2F%2Fscs.ryerson.ca%2F%7Eaharley%2Fvis%2Fconv%2Fflat.html) をご覧ください。

畳み込みニューラル ネットワークの各レベルで何が起こるかを鮮明に分析します。

左上隅はユーザー入力場所です。マウスを使用して数字(0~9)を入力してください。少々醜くても構いません。

7を入力しました。

出力結果を観察します。モデルは、最初の選択肢が 7 で、2 番目の可能性が 3 であると正しく判断します。答えは正解です。

モデル構築の詳細を見てみましょう。

マウスを最初の畳み込み層に移動します。任意のピクセルで停止します。コンピュータは、特徴検出を通じて、この点がグラフィックスの前のレイヤーのどのピクセルからのものであるかを伝えます。

同様に、最初の Max プーリング レイヤーにマウスを移動すると、コンピューターは、ピクセルがどのピクセル ブロックからサンプリングされたかを視覚的に表示することもできます。

このウェブサイトはあなたの時間の価値があります。畳み込みニューラル ネットワークの意味を理解するのに役立ちます。

例のグラフを思い出してください:

次の層は完全接続層と呼ばれ、前の層によって出力されたすべての行列を 1 次元に圧縮し、長い出力結果に変換します。

その後に出力層が続き、対応する結果が、機械が習得する必要がある分類になります。

最初の 2 つのレイヤーだけを見ると、以前に学習したディープ ニューラル ネットワーク (DNN) と簡単に関連付けることができます。

すでにディープ ニューラル ネットワークが存在するのに、なぜ畳み込み層とサンプリング層を使用してモデルを複雑にしてしまうのでしょうか。

ここで考慮すべき点は 2 つあります。

1つ目は計算量です。画像データの入力量は一般的に大きく、複数のディープニューラル層を直接使用して出力層に接続すると、各層の入力と出力の数が膨大になり、計算の総量は想像を絶する量になります。

2つ目はパターンの特徴を捉えることです。非常に大きな計算能力があっても、ディープ ニューラル ネットワークは期待どおりに画像パターンを認識できない可能性があります。あまりにも多くのノイズを学習してしまうからです。畳み込み層とサンプリング層を導入することで、ノイズを効果的に除去し、画像内のパターンがトレーニング結果に与える影響を強調することができます。

たった 12 行のコードしか書いていないのに、使用する畳み込みニューラル ネットワークは、上の図のように 4 層または 5 層しかないはずだ、そう思うかもしれません。

それは違います。合計 50 レイヤーを使用しました。

科学的な名称はResnet-50で、Microsoftの研究開発成果です。2015年にILSRVCコンペティションで優勝しました。 ImageNet データセットでは、その分類および認識パフォーマンスは人間のそれを上回りました。

該当論文のアドレスをここに添付しました(https://link.jianshu.com/?t=https%3A%2F%2Farxiv.org%2Fabs%2F1512.03385)。ご興味がございましたら、ご参照ください。

上の写真の一番下のものを見てください。それがそのように見えます。

それは十分に深く、十分に複雑です。

ディープニューラルネットワークについてある程度の知識があれば、さらに驚くべきことがわかるでしょう。レイヤーが多数あり、トレーニング データが少ないのに、どうすればこのような優れたテスト結果が得られるのでしょうか?そして、良いトレーニング結果を得たいのであれば、大量の写真のトレーニングプロセスに長い時間をかけるべきではないでしょうか?

はい、Resnet-50 を最初から構築し、ImageNet データセットでトレーニングする場合、優れたハードウェア (GPU) があっても長い時間がかかります。

ノートパソコンでトレーニングしているなら...諦めてください。

それで、TuriCreate は本当に奇跡なのでしょうか?トレーニングに長い時間を費やすことなく、小さなサンプルサイズで高レベルの分類結果を達成するにはどうすればよいでしょうか?

いいえ、データサイエンスには奇跡はありません。

この魔法のような効果は一体何によって生じるのでしょうか?この質問は思考実験として残されています。検索エンジンやQ&Aサイトをうまく活用して、自分で答えを見つけてください。

5. まとめ

この記事を通じて、次の内容を習得しました。

Anaconda 仮想環境に Apple の機械学習フレームワーク TuriCreate をインストールする方法。

TuriCreate でフォルダーから画像データを読み取る方法。フォルダーの名前を使用して写真をマークします。

TuriCreate でディープ ニューラル ネットワークをトレーニングして画像を分類する方法。

テスト データ セットを使用して画像分類の効果をテストする方法。そして、誤って分類された画像を見つけます。

畳み込みニューラル ネットワーク (CNN) の基本構造と動作原理。

ただし、スペースの制限により、以下の問題については詳しく触れたり説明したりしませんでした。

トレーニングおよびテスト画像データをバッチで取得する方法。

TuriCreate が認識できない画像形式を前処理機能を使用して変換する方法。

モデルのレイヤーとパラメータを完全に制御しながら、畳み込みニューラル ネットワーク (CNN) をゼロから構築する方法。

トレーニングに長い時間を費やすことなく、小さなサンプルサイズで高レベルの分類結果を達成する方法 (キーワードのヒント: 転移学習)。

上記の質問について実際に考えてみてください。ぜひメッセージを残したり、メールを送ってあなたの考えを私に伝えてください。

オリジナルリンク: https://www.jianshu.com/u/7618ab4a30e4

<<:  集める! 2017 年の主要な AI イベントを総ざらい!(動画付き)

>>:  深層強化学習とは:次世代のAIと深層学習

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

ディープラーニングツール:スマート端末におけるTensorFlowの応用

[[204425]]序文ディープラーニングは、画像処理、音声認識、自然言語処理の分野で大きな成功を収...

量子コンピューティングと人工知能の関係は何ですか?

量子コンピューティングは、学術誌だけでなく、一般の新聞や雑誌でも頻繁に議論される、非常に人気の高いト...

Baidu AI開発者会議が進行中、重要なニュースが次々と発表されている

百度AI開発者会議は予定通り7月4日から5日まで北京国家会議センターで開催されました。百度の創業者、...

アルゴリズムなしでもTikTokを購入する価値はあるでしょうか?技術専門家:購入者がその魔法を再現するのは難しい

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

プラットフォームのイノベーションを加速し、「クラウド、ビッグデータ、IoT、インテリジェンス」の新たな章を切り開く

世界を席巻するデジタル変革は、あらゆる分野に大きな発展のチャンスをもたらしました。技術革新を推進する...

...

人間を超えた最初の専門家! OpenAIが混乱に陥る中、Googleのマルチモーダル大規模モデルGeminiがそれを打ち負かす

OpenAIが混乱に陥っている間、Googleは「全員を殺す」準備をしている。ちょうど昨夜、Goog...

5年後に最もホットなものは何でしょうか? 2025 年のトップ 10 トレンド: ゼロ検索時代の到来

[[273076]]ファーウェイは8月8日、世界産業展望GIV@2025を発表し、次のように予測した...

AI時代に誰かが密かにあなたの顔を真似している

人工知能の時代音声、指紋、顔認識など。 AI技術は飛躍的に進歩している犯罪者もこれに気づいているこの...

自動監視、リアルタイム警報AI防水システムが安全ネットを構築

暑い夏には、スーパーマーケットにちょっとしたおやつを買いに行くだけでも大量の汗をかきます。扇風機を使...

仕事の脅威? AIはマーケティング担当者の仕事を奪うのでしょうか?

先週、コピーライターのパネルがAIによってコピーライターの必要性がなくなるかどうかを議論した。一部の...

検出器がミスを犯し、英語を母国語としない人が書いた英語の記事の半分以上がAIによって書かれたと判定された。

7月13日、スタンフォード大学の研究者らは、英語を母国語としない人が英語の語彙力を十分持っていない...

ビッグデータの機械理解の秘密:クラスタリングアルゴリズムの詳細な説明

この記事では、いくつかのクラスタリング アルゴリズムの基本的な概要を示し、シンプルでありながら詳細な...

...