人がコンピュータに命令を与える方法は、概ね Graphical User Interface (GUI) に基づく方法と Character User Interface (CUI) に基づく方法の 2 種類に分けることができる。業務で使用する Windows パソコン、タブレット端末、銀行 ATM などが GUI の代表例となります。これらは、わかりやすく表示されたコンピュータの画面をみながらコンピュータに命令を出しているところでは共通しています。これに対して、文字のやりとりのみでコンピュータに命令を出したり、コンピュータから計算結果を受け取ったりする操作が CUI であり、日常生活でほとんど触れることはありません。
GUI 操作は直感的でわかりやすいが、ビッグデータなどを処理する場合に非効率的です。例えば、あるフォルダの中に 1000 件の CSV ファイルがあるとします。これらの CSV ファイルの中に様々な果物の売り上げデータがあるとします。この 1000 件の CSV ファイルに散らばっているリンゴの売り上げデータを収集したい場合は、ファイルを一つ開いで、ファイルの内容を確認し、“apple” を含まれている行を探してコピーし、新しいファイルに貼り付ける、という作業を 1000 回繰り返す必要があります。さらにこの作業を間違いなく行う必要があります。作業は単純だが、多くの作業時間を必要とします。
一方で、コマンドと呼ばれるものを利用すると、この集計作業を文字でコンピュータに命令することができます。例えば、1000 件の CSV ファイルからリンゴのデータを集計する作業では、次のような文字命令を出すことによって、わずか数秒で集計作業を終わらせることができます。
for f in `ls *.csv`; do grep 'apple' ${f} >> apple.csv done
そして、リンゴではなく、イチゴのデータも収集したい場合は、文字命令を少し変更する(“apple” を “strawberry” に変更する)だけで収集できるようになります。このように文字だけでコンピュータに命令を与える操作が CUI 操作となります。スパコンを使う上で、このような操作を身につけると効率的なデータ操作が行えます。
コマンドは数十種類あるが、よく使うコマンドは限られています。今回の講習会で使用する予定のコマンドを次の表に示しました。具体的な使い方は初級コースで学ぶが、コマンドの意味を初級コースが始まる前に覚えておくことをおすすめします。
コマンド | 機能 |
`pwd` | 現在作業しているディレクトリのパスを表示する。 |
`ls` | ディレクトリの内容の一覧を表示する。 |
`cd` | ディレクトリを移動する。 |
`cp` | ファイルまたはディレクトリをコピーする。 |
`mv` | ファイルまたはディレクトリを移動する。 |
なお、初級・中級コースを受講する上では必要はありませんが、コマンドを詳しく学びたい方は次の資料を参考にしてください。
コマンド 1 つが 1 つの命令となっています。コンピュータへの命令が単純であれば、コマンドだけで十分にデータ処理が行えます。しかし、複雑な計算などを行おうとすると、コマンドだけでは不十分になります。そこで登場するのがプログラミング言語です。
プログラミング言語は、簡単に言えば、コンピュータを制御するための言語です。その種類は数百にもおよぶと言われています。これらのプログラミング言語には優劣がなく、目的によって使い分けられています。例えば、統計・機械学習の分野において Python や R などが使われ、システム開発ならば Python、Java や Go などがよく使われています。
AI を理解する上で、数学・統計の知識だけさえあれば十分ですが、AI を活用していくにはプログラミング言語を使える必要があります。AI の分野でよく使われているプログラミング言語には C++、Python や R などがあります。このなか、とくに Python は勉強しやすく、応用範囲が広いプログラミング言語と言われています。AI 最先端のアルゴリムがほとんど Python で記述されているほど有名です。また、Python のほかに、データサイエンスの分野においては R もよく使われている。とくに統計解析や多変量解析などは R が欠かせません。そのため、AI を学ぶにあたり、プログラミング言語として Python および R をまず学ぶことをおすすめします。
本教育プログラムの初級および中級コースでは Python と R の両方を使用しますが、本プログラムの内容として AI の作り方や AI の活用に重みをおいてあるため、Python および R の使い方について最小限のことしか説明しません。そのため初級・中級コースを受けるにあたり、次にリストに挙げた Python および R 知識をすでに持つことを期待しています。本プログラムを受講するにあたり、これらの項目を重点的に学ぶことをお薦めします。
Python および R を学ぶにあたり、以下の資料を参考になれます。これらの資料は、Python および R の基本的な部分から応用部分まで広くカバーしてあります。このうち、初級・中級コースに必要な部分をカッコの中に書きました。これらの部分については習得(復習)しておくと、初級・中級コースもスムーズに理解できるようになります。