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

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

ディープラーニングを始めるための、プログラムの基礎

2018年12月14日

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

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

はじめに

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

マナブ:あせる AIやディープラーニングは何で出来ているの?

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

読者対象

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

学習内容

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

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

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

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

プログラムとは?

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

図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編)』(後日公開予定)で図解により丁寧に説明する。

つづく

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

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

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

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

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

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

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

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

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

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

本コンテンツの目次

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

ディープラーニングを始めるための、プログラムの基礎


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