ディープラーニングはプログラムとして作成するが、そもそもプログラムとは何なのか? プログラムに関する基礎の基礎を紹介する。
ご注意:本記事は、@IT/Deep Insider編集部(デジタルアドバンテージ社)が「deepinsider.jp」というサイトから、内容を改変することなく、そのまま「@IT」へと転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
本連載では、最初の学習ステップとして「ディープラーニングを実現するプログラムとは何か」といった、コンピューター(主にパソコン=PC)上でプログラムが動作する仕組みの基礎の基礎(大学ではコンピューターサイエンスと呼ばれている)について簡単に説明する。
かなり基本的な内容となるので、もし大学の授業などで「コンピューター」の基礎を学んだことがあれば、本稿を読む必要はないだろう。
まずは記事タイトルにも入っている「プログラム」という概念について押さえよう。
プログラム(Program)という言葉は今までに聞いたことがあるだろう。例えばスマートフォンの「アプリ」は、プログラムの一種で(詳細後述)、何らかの処理をしたり、機能を提供したりするものである。例えば「ニューラルネットワーク Playground - Deep Insider」(図1)というWebブラウザー上で動作するアプリ(略してWebアプリと呼ぶ)は、ディープラーニングのベースとなっているニューラルネットワークの挙動を可視化する機能を提供している。
このWebアプリの一連の実行処理の流れ(=手続き)は、コード(code)もしくはソースコード(source code)と呼ばれ、アルファベットや数字などで書かれている。図2は、「ニューラルネットワーク Playground - Deep Insider」のコードの一部である。
なお、「コードを書くこと」は、コーディング(coding)と呼ばれ、「プログラムを作る」ことをプログラミング(programming)と呼ぶ(図3)。コーディングとプログラミングはほぼ同じような意味だが、「コーディング」と言った場合、プログラムを構成するコードを実際に「書く」という作業に着目したイメージになる。「プログラミング」と言うと、プログラムの設計からコーディング、その後のテスト実行や不具合(=バグ)の修正までを含む、「プログラム作成」の一連の作業全般を含めたイメージになる。
「では、どうやってコードを書けばよいのか」という話になるが、これはプログラミング言語(Programming language)と呼ばれるプログラム作成専用の言語を用い、その言語が定める文法に則って書いていくことになる(この他に、作成したプログラムを動作させるための「実行環境」と呼ばれるものも基本的に必要になる)。面倒なことに、このプログラミング言語は多種多様で、例えばPython言語、R言語、Ruby言語、JavaScript言語、Go言語、Java言語、C#言語、C言語、C++言語などと、数え切れないほどたくさんある。
どれを使うかは、ユーザーの好みや実現できる内容によって決めることになるが、AIを作るのであれば、現状では基本的にPython一択となる*1。本シリーズでもPythonを使用する。
要するに、機械学習やディープラーニングを始めるに当たっては、まずはPython言語の基本文法を知っておく必要があるのだ。AIを作る際に必要となる最低限のPython言語文法は『機械学習&ディープラーニング入門(Python編)』で図解により丁寧に説明する。
以上、プログラムの基礎の基礎を紹介した。次回はコンピューターの基礎の基礎を紹介する。
Copyright© Digital Advantage Corp. All Rights Reserved.