素人でもディープラーニングができる「NVIDIA DIGITS」で文字認識をやってみた(1/2 ページ)

» 2017年01月24日 06時00分 公開
[井上輝一ITmedia]

 素人でもディープラーニングが使えるようになる講座がある。そんな案内がNVIDIAから届いた。

 ディープラーニングといえば、2016年に囲碁でイ・セドルに勝利した「Alpha Go」や、自動車の自動運転技術に採用されているアルゴリズムだ。

 一般的に、ディープラーニングを自分でいじってみようと思うとPythonなどプログラミング言語の理解や、GPUの用意などハードウェア的な面である程度のハードルがある。

 そういったハードルの高さから「ディープラーニングってよく聞くけれどどんなものなのだろう」と興味を持っても、説明を読む程度で実際に使用するところまでたどり着かない人も多いだろう。

 かく言う私も、プログラミングはJavaの経験が少々あるもののPythonは触ったことがなく、ディープラーニングについては概念図を見てなんとなく理解した気になっていた程度だった。

 そんな中届いた「NVIDIA Deep Learning Institute 2017」の案内を読むと、

  • ディープラーニングをこれから始める方を対象に、必要な基本知識について説明
  • ディープ ニューラル ネットワークを用いた画像分類を実現するためのワークフローを体験。事前知識はWebブラウザの操作ができること

 といったことが書いてある。なんと、プログラミングの知識がなくてもディープラーニングを体験できるという。

 「素人でも始められるディープラーニング」の講座をNVIDIA Deep Learning Institute 2017で受講してきたので、その内容を紹介しよう。ただ、聞いた内容を忠実に書いたつもりだが私自身もディープラーニングの素人であるから、幾分か表現が厳密ではないところもあるかもしれないのでそこはご容赦いただきたい。

使うツールは「NVIDIA DIGITS」 しかも学習用環境がクラウド上に

 今回使用するのは「NVIDIA DIGITS」という、学習したいデータセットやモデルの選択など、必要な操作を全てブラウザ上で行えるツールだ。このツールは本来ダウンロードして実行するものなのだが、今回はNVIDIAのオンライン学習サイト「QwikLabs」の無料コースからクラウド(AWS)上に環境が整えられた仮想OSを使用する。そのため、DIGITSのダウンロードの必要もないし、PCにハイスペックなGPUが載っている必要もない。

 本記事で解説する内容はQwikLabsにサインインすれば誰でも体験できるため、やってみたい方はQwikLabsに無料登録、サインインしてみてほしい。

ディープラーニングに必要な操作がWebブラウザ上で完結するNVIDIA DIGITS
今回はQwikLabsの無料コースで体験する

ディープラーニングって?

 先に、ディープラーニングの基本的な概念を見ていこう。ディープラーニング(≒ディープニューラルネットワーク)は、機械学習の一種である人工ニューラルネットワークの中でも層が多層になっているものを指す。ディープラーニングの図というと下のような図を見たことがある人もいるだろう。

ディープラーニングの説明でよくある図。入力層に画像や音声などのデータを入力し、出力層でそれが何であるか判別する(スライドはNVIDIA Deep Learning Institute 2017の村上真奈氏と森野慎也氏の講座から引用)

 この図の丸は生物の神経細胞(ニューロン)を模しており、丸どうしをつなぐ線は神経細胞どうしをつなぐ神経線維に対応する。つまり、人工ニューラルネットワークとは生物の神経回路をまねることで機械でもデータを学習しようというアプローチだ。

人工ニューロンの正体

 では、神経細胞に当たるこの「丸」は具体的に何なのかという疑問が浮かぶ。神経細胞をまねるというから何かしらのオブジェクトだったり、データセットだったりするのだろうかと前はふんわり思っていたのだが、説明を聞いてみると答えは明快。単なる変数だ。

人工ニューラルネットワークは生物の神経回路をまねたもの神経細胞に当たる「丸」の正体は単なる変数 人工ニューラルネットワークは生物の神経回路をまねたもの(左)、神経細胞に当たる「丸」の正体は単なる変数(右)

 入力層の各xにそれぞれ「重み」の係数wをかけたものを隠れ層の各yに加算し、各yにまた重み係数をかけたものを出力層zに加算する、という操作を表したものが上記右側の3層のパーセプトロンだ。例えば入力データに白黒画像を使うなら、入力層のxの値は各ピクセルの明度になる。

 つまり、このパーセプトロンは数字の乗算と加算しかやっておらず(他の関数操作が加わる場合もある)、小学生でも理解できる計算式で表せるのだ。この図には入力層、出力層の変数が3つしかないので3つの方程式で表せるが、実際には3つよりもっと多いため、行列を用いることですっきり表せる。

入力層から隠れ層、隠れ層から出力層への計算は行列で表せる
行列計算をまとめると入力層から出力層への計算は1つの式で表せる

重みの調整が人工ニューラルネットワークの要

 重みwは初めはランダムに生成されるため、出力層の値は教師データ(正解の値)と比べると当然めちゃくちゃだ。教師データとの誤差が小さくなるよう、ここから重みwの値を勾配降下法などのアルゴリズムを使って調整していく。

出てきた出力層の結果と正解の値を照らし合わせ、差が小さくなるように重みを調整していく

 ディープラーニングの学習では、使用するデータを訓練データと検証データに分ける必要がある。訓練データで学習(重みの調整)し、検証データで学習がうまくいったか確認する、という具合だ。検証データはエラー数を確認するだけで、あくまで重みの調整には使用しない。訓練データの学習から検証データでの確認までの一巡を「エポック」と呼び、基本的にエポックを増やすほどエラー数が小さくなる(=正答率が上がる)。

なぜ検証データを分けるのか→未知のデータに答えられなくなるのを防ぐため

 なぜ検証データを分けるかというと、「過学習」という状態を避けるためだ。過学習は訓練データに対してはよく正答できるが、その他の未知のデータに対してはうまく答えられない状態のこと。従って、エポックを繰り返しても検証データでエラー数が下がらなければ過学習、つまり学習失敗であり、逆に検証データでもエラー数が下がれば学習成功ということだ。

「過学習」を避けるため、収集したデータは訓練用と検証用に分ける必要がある。検証データでもエラー数が下がっていけば学習成功
       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

2026年07月28日 更新
  1. 鳴り物入りで登場した「Copilotキー」が早くもお蔵入りか──チャットボットからAIエージェントへの移行が示すMicrosoftの誤算 (2026年07月27日)
  2. 64GBメモリ/2TBストレージ/Ryzen AI Max+ 395搭載のハイエンドミニPC「MINISFORUM MS-S1 MAX」がタイムセールで27%オフの43万2799円に (2026年07月25日)
  3. なぜ元Appleエンジニアは熱意を失い起業したのか? スマートグラス「Even G2」イベントで語られた、次世代機「G3」へのロードマップ (2026年07月27日)
  4. 480mm水冷に160mmファン搭載ケース! 夏のアキバは「大風量パーツ」がアツい (2026年07月27日)
  5. エアコンがない部屋を冷やせる「Dreemstar 冷風扇」がセールで50%オフの9980円に (2026年07月23日)
  6. 高価なグラフィックスカードを守る「過熱保護ケーブル」に注目! 夏を乗り切るNoctua製簡易水冷も販路拡大で続々入荷 (2026年07月25日)
  7. ポタ電と組み合わせて使える「Soraiori ポータブルエアコン」がセールで16%オフの2万9980円に (2026年07月27日)
  8. NVIDIAが次世代AI超解像技術「DLSS 5」の今秋投入を明らかに/MicrosoftとMistralが欧州におけるAI演算能力の拡大で戦略的提携を発表 (2026年07月26日)
  9. プラネックス、10GbE接続に対応した5ポート搭載アンマネージドスイッチ (2026年07月24日)
  10. Jackery、定格1500Wを実現するポータブル電源「1000 New」の新モデル 19%小型化 (2026年07月27日)
最新トピックスPR

過去記事カレンダー