機械学習 & ディープラーニング入門(コンピューター概論編)[Lesson 2]

機械学習 & ディープラーニング入門(コンピューター概論編)[Lesson 2]

ディープラーニングを始めるための、コンピューターの基礎

2018年12月17日

ディープラーニングはプログラムとして作成するが、そのプログラムはコンピューター上でどうやって動くのか? コンピューターに関する基礎の基礎を紹介する。

一色政彦 デジタルアドバンテージ 一色 政彦

 前回はプログラムの基礎の基礎を紹介した。今回は、コンピューターの基礎の基礎を紹介する。脚注や図の番号は前回からの続き番号としている。

AIを実行する「コンピューター」の基礎

 ここでは、「コンピューター」という概念について押さえる。

コンピューター上で実行されるプログラム

 AIの機能は、そのプログラムをコンピューター(主にパソコン)上で実行することによって実現する。

 コンピューターComputer)とは、日本語に直訳すると「計算機」という意味になる。つまりコンピューターとは、何らかの演算(=計算)をするための機械、というわけだ。ちなみに「演算・計算」というと、単純な足し算、割り算などを考えてしまうかもしれないが、そうした細かな計算のような処理を積み上げていくことで、現代のコンピューターは複雑な処理を実行できるようになっている。

 そして、AIにおけるコンピューターとは、AIのプログラムを実行するための機械、と言ってもよいだろう*2

コンピューター上で実行されるプログラム
図4 コンピューター上で実行されるプログラム
  • *2 ゲームをしたことがあれば知っているだろうが、ゲーム機を「ハード」、ゲーム自体を「ソフト」と呼ぶ。これと同じ用語で、物理的な実体のあるもの(ハード)とデジタルな非実体のもの(ソフト)という観点から、機械であるコンピューターを指してハードウェアHardware)と呼び、プログラムを指してソフトウェアSoftware)と呼ぶこともある。

コンピューターの中身と動作原理

 ところで、プログラムを実行するコンピューター(ここではパソコン)の中身はどうなっているのだろうか? ここでは、大まかに中身の部品と、その各部品の動作を説明する。

 パソコンやスマートフォンを買った人であれば、スペック(仕様)の一覧表を見たことがあるかもしれない。例えば図5は、パソコンのスペック一覧表の例である。

パソコンのスペック一覧表の例
図5 パソコンのスペック一覧表の例

 この一覧表で、左に並んでいる「ディスプレイ」「プロセッサ」「ストレージ」「メモリ」「グラフィックス」「キーボード」「マウス」という部品が、現在のコンピューターの基本要素となる。なおここでは、一覧表に沿って具体的な装置・デバイスでコンピューターを説明しているが、学術的にはコンピューターは、「演算装置(プロセッサ)」「制御装置(プロセッサ)」「記憶装置(ストレージやメモリ)」「入力装置(キーボードやマウスなど)」「出力装置(ディスプレイなど)」という5つの基本装置で構成されているとするコンピューターの5大装置という概念で説明される(プロセッサは演算装置であり制御装置でもある)。これらは図6のような関係にある。

図6 コンピューターの基本要素の構成例

 おおまかな挙動を説明すると*3、キーボードやマウスから受け取った入力を、プロセッサが何らかの処理(演算など)をし、その出力をグラフィックスが受け取り、ディスプレイに出力する。またプロセッサは、入力や出力に加え、ストレージに保存されたプログラムをメモリにロードして起動したりアンロードして終了したり(一時記憶)、処理するデータをメモリに読み込んで使える状態にしたり(一時記憶)、逆にメモリにあるデータをストレージに保存したり(永続記憶)といった、さまざまな装置・デバイスの制御を行う。なお、先ほど説明した「プロセッサが何らかの処理をする」とは、例えばプログラムが提供する処理機能(図2の電卓の例なら「足し算」や「引き算」など)を実行したりすることである(図7)。

  • *3 ここでは「情報処理技術者試験」で学ぶ「学術的な仕組み」ではなく、あくまでざっくりとした一般ユーザーから見た挙動を紹介している。より詳しく仕組みを知りたい場合は、「コンピューターの5大装置」をGoogle検索するなどして、別の解説記事を当たってほしい。
図7 プロセッサの基本動作

 プロセッサは、CPU(Central Processing Unit:中央処理装置)とも呼ばれる。名前のとおり、コンピューターの「中央・中心」に位置付けられる要素で、コンピューターのすべての処理(演算)・制御を一手に司っている。

 しかしながら、このCPUには「並列処理(=複数の処理を同時に実行すること)が(後述のGPUと比べると)あまり得意ではない」という弱点がある。AIプログラム内部での計算の数は非常に膨大になることが普通である。その膨大な計算を1つずつではなく、複数同時に並列で行れば、より効率的に処理が進められ、より短い時間で計算が完了するはずだ。

 そこでAI研究者から目を付けられたのが、ゲームなどのグラフィックスに使われていたグラフィック専用の演算装置であるGPU(Graphics Processing Unit)である。GPUは、CPUと違って、「単純計算を並列に処理するのが得意」である。実際にAIにおいて、CPUで計算した場合とGPUで計算した場合とを比べると、10倍以上、GPUが速いことが多く、圧倒的に性能が異なる(と筆者は多くのデータサイエンティストから聞いている)。

 そこで、AIなどのグラフィックス以外の処理にGPUの演算機能が代用されるようになった(図8)。このようなGPUの利用方法は、GPGPU(General-purpose computing on graphics processing units:GPUによる汎用計算)と呼ばれている。

図8 AIの演算処理でのGPUの代用

 「では、AIではGPUが必須なのか?」というと、そういうわけでもない。実際に『Playgroundで学ぶディープラーニング入門(座標点データ編)』(後日公開予定)ではAIの実装方法を説明するが、そこまで大量の計算を行わないので、GPUは利用しない(また、CPUやメモリなどの性能が良いパソコンも必要ない)。

 コンピューターの中身と動作原理については、以上のことを知っておけば、AIのプログラムを作るうえでは十分だ。

 CPU、GPU以外の重要キーワードとしては、メモリを覚えておいてほしい。メモリには、計算中のビッグデータをロードすることになるが、その際に、データのサイズによってはメモリ不足などのエラーが発生することがある。そのような問題が発生し得るケースではメモリについて知っておく必要があるだろう。

つづく

 以上、コンピューターの基礎の基礎を紹介した。次回はアプリケーションと開発の基礎の基礎を紹介する。

  • このエントリーをはてなブックマークに追加
機械学習 & ディープラーニング入門(コンピューター概論編)[Lesson 2]
1. ディープラーニングを始めるための、プログラムの基礎

ディープラーニングはプログラムとして作成するが、そもそもプログラムとは何なのか? プログラムに関する基礎の基礎を紹介する。

2018年12月14日(金)
機械学習 & ディープラーニング入門(コンピューター概論編)[Lesson 2]
2. 【現在、表示中】≫ ディープラーニングを始めるための、コンピューターの基礎

ディープラーニングはプログラムとして作成するが、そのプログラムはコンピューター上でどうやって動くのか? コンピューターに関する基礎の基礎を紹介する。

2018年12月17日(月)
機械学習 & ディープラーニング入門(コンピューター概論編)[Lesson 2]
3. ディープラーニングを始めるための、アプリケーションと開発の基礎

ディープラーニングのプログラムはどのようにして作るのか? プログラムに関連するライブラリやフレームワークといった周辺知識を説明する。

2018年12月18日(火)
機械学習 & ディープラーニング入門(コンピューター概論編)[Lesson 2]
4. 「プログラム、コンピューター、アプリケーションと開発」の基礎まとめ

そもそもプログラムとは何なのか? プログラムはコンピューター上でどうやって動くのか? プログラムはどのようにして作るのか? プログラムに関する基礎知識と周辺知識を箇条書きでまとめる。

2018年12月18日(火)
Deep Insider の SNS :

本コンテンツの目次

機械学習 & ディープラーニング入門(コンピューター概論編)[Lesson 2]
機械学習 & ディープラーニング入門(コンピューター概論編)[Lesson 2]

ディープラーニングを始めるための、コンピューターの基礎


本コンテンツに関連する重要用語