連載
» 2018年12月14日 05時00分 公開

機械学習&ディープラーニング入門(コンピューター概論編):Lesson 1 ディープラーニングを始めるための、プログラムの基礎

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

[一色政彦,デジタルアドバンテージ]
「機械学習&ディープラーニング入門(コンピューター概論編)」のインデックス

連載目次

ご注意:本記事は、@IT/Deep Insider編集部(デジタルアドバンテージ社)が「deepinsider.jp」というサイトから、内容を改変することなく、そのまま「@IT」へと転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。

はじめに

【これを学ぼう】プログラムの基礎


マナブ:あせる

AIやディープラーニングは何で出来ているの?


藍:にっこり

コードが書かれたプログラムで出来ているのよ。本連載では、プログラムの基礎と周辺知識について簡単に紹介するね。


読者対象

  • 初めてディープラーニングや機械学習を学び始めるが、コンピューターやプログラムについても初めて学ぶ方

学習内容

 本連載では、最初の学習ステップとして「ディープラーニングを実現するプログラムとは何か」といった、コンピューター(主にパソコン=PC)上でプログラムが動作する仕組みの基礎の基礎(大学ではコンピューターサイエンスと呼ばれている)について簡単に説明する。

 かなり基本的な内容となるので、もし大学の授業などで「コンピューター」の基礎を学んだことがあれば、本稿を読む必要はないだろう。

AIを実現する「プログラム」の基礎

 まずは記事タイトルにも入っている「プログラム」という概念について押さえよう。

プログラムとは?

 プログラムProgram)という言葉は今までに聞いたことがあるだろう。例えばスマートフォンの「アプリ」は、プログラムの一種で(詳細後述)、何らかの処理をしたり、機能を提供したりするものである。例えば「ニューラルネットワーク Playground - Deep Insider」(図1)というWebブラウザー上で動作するアプリ(略してWebアプリと呼ぶ)は、ディープラーニングのベースとなっているニューラルネットワークの挙動を可視化する機能を提供している。

Webアプリ「ニューラルネットワーク Playground - Deep Insider」 図1 Webアプリ「ニューラルネットワーク Playground - Deep Insider」

 このWebアプリの一連の実行処理の流れ(=手続き)は、コードcode)もしくはソースコードsource code)と呼ばれ、アルファベットや数字などで書かれている。図2は、「ニューラルネットワーク Playground - Deep Insider」のコードの一部である。

「ニューラルネットワーク Playground - Deep Insider」のコードの一部 図2 「ニューラルネットワーク Playground - Deep Insider」のコードの一部

 なお、「コードを書くこと」は、コーディングcoding)と呼ばれ、「プログラムを作る」ことをプログラミングprogramming)と呼ぶ(図3)。コーディングとプログラミングはほぼ同じような意味だが、「コーディング」と言った場合、プログラムを構成するコードを実際に「書く」という作業に着目したイメージになる。「プログラミング」と言うと、プログラムの設計からコーディング、その後のテスト実行や不具合(=バグ)の修正までを含む、「プログラム作成」の一連の作業全般を含めたイメージになる。

コーディングとプログラミングの違い 図3 コーディングとプログラミングの違い

プログラムの作成

 「では、どうやってコードを書けばよいのか」という話になるが、これはプログラミング言語Programming language)と呼ばれるプログラム作成専用の言語を用い、その言語が定める文法に則って書いていくことになる(この他に、作成したプログラムを動作させるための「実行環境」と呼ばれるものも基本的に必要になる)。面倒なことに、このプログラミング言語は多種多様で、例えばPython言語、R言語、Ruby言語、JavaScript言語、Go言語、Java言語、C#言語、C言語、C++言語などと、数え切れないほどたくさんある。

 どれを使うかは、ユーザーの好みや実現できる内容によって決めることになるが、AIを作るのであれば、現状では基本的にPython一択となる*1。本シリーズでもPythonを使用する。

*1 AIやディープラーニングは「データ分析」の一分野でもあり、その分野ではR言語の人気も高い。ただし、特にディープラーニングについては、R言語ではなく、Python言語で作るのが一般的である。


 要するに、機械学習やディープラーニングを始めるに当たっては、まずはPython言語の基本文法を知っておく必要があるのだ。AIを作る際に必要となる最低限のPython言語文法は『機械学習&ディープラーニング入門(Python編)』で図解により丁寧に説明する。

つづく

 以上、プログラムの基礎の基礎を紹介した。次回はコンピューターの基礎の基礎を紹介する。

「機械学習&ディープラーニング入門(コンピューター概論編)」のインデックス

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

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。