1. なぜコンピューティングを学ぶのか

本セクションではなぜ本講座でコンピューティングをまなぶのか。 なぜ、コンピュータで実際にプログラムを動かす方法を学ぶのかを 説明します。

1.1 セクション1のねらい

_images/slide_01_020.png

セクション1のねらいです。

  • なぜAI活用人材育成講座でコンピューティングを学ぶのか
  • どんな予備知識が必要か
  • 本講座では何を目指すか

これらを最初に説明します。

1.2 なぜ AI活用人材育成講座でコンピューティングを学ぶのか

_images/slide_01_030.png

AIや機械学習の動作はプログラムの構造は簡単だが動作は高度である、という傾向があります。

どういうことでしょうか?

例をあげましょう。 Windows XP のプログラムの行数は4500万行です。 これは一日1000行ずつ読んでいっても45000日、140年かかるという途方もない行数です。 つまりWindows XPのプログラムのすべてを理解している人間は一人もいないのです。 これに対し、AlphaZeroという人工知能は、囲碁で人間の名人を破りましたが、どれほどのプロうグラムでしょう? WindowsXPの100倍? いえ、たったの数百行なのです。 1行10秒かけても全部読むのに1時間かかりません。

なぜそのような短いプログラムが人間を凌駕するのでしょう? コンピューティングパワーが飛躍的に向上し、膨大な計算を行えるようになりました。 そして学習アルゴリズムの革新によってそれを利用できるようになったのです。

プログラムコードは単純でも恐ろしく膨大な知識をデータとして蓄えるのです。

ですからAI、機械学習をマスターするには以下が重要になります。

  • どう機能するか
  • なにがAI、機械学習などの能力を決定するか
  • どこに限界があるか
  • どうすれば性能を向上できる

これらの理解には実際にコンピューティングを行ってみることが役立ちます。

自動車を理解するのにハンドル、アクセル、ブレーキの説明を受けるだけではだめで、実際に運転してみる必要がある、というのと似ているかもしれません。

1.3 本講座に必要な予備知識

_images/slide_01_040.png

本講座では特に予備知識は必要としません。 文系理系にかかわらず十分理解できるように説明を進めます。 線形代数の知識も知っていればより理解が深まる、という程度に使います。

しかし、 もし一般的なプログラミングの知識があれば本章のプログラミングの部分はより深く理解することができます。 また、一部は省けます。

セクション3プログラミングについて

  • Pythonを知っていれば不要です。
  • プログラミングを知っている場合、ざっと流せば理解できるはずです。
  • プログラミング未経験者ならば、演習しっかりやりながら学ぶことを推奨します。

演習はwebサイト上に用意しています。

セクションセクション4~6について

  • AI、機械学習などのプログラムのイメージを理解する目的であり、予備知識は不要

1.4 到達目標

_images/slide_01_050.png

本講座では以下を目標とします。

  • Python言語のサンプルプログラムやアルゴリズムの説明をなんとなくわかること
  • 他講座におけるAI、機械学習などの説明を理解するための基礎的理解力をつけること

しかし、以下は目標にしなません。

  • Pythonプログラミングをマスターすること

本講座ではPython言語の説明はそのごく一部を説明し、以下は割愛しています

  • 膨大なライブラリ
  • 配列、文字列と浮動小数点数以外のデータ構造
  • クラス定義や基本演算以外の演算

Pythonプログラミングを本格的に学ぶには、他のプログラミングの講座や教科書で学んでください。

また本講座や他の講座で、Pythonプログラムをだいたい理解できるようになっても、自分でプログラムをすることができない、ということで悩む人はたいへん多いと思います。

それはプログラミング学習において「ごく普通」のことなのでがっかりしないでいただきたいと思います。

プログラミング言語は「言語」です。英語の単語を知っていても小説がかけないように、絵筆の使い方をしっていても絵がかけないように、プログラミング言語を知ってもプログラムは書けません。それにはもう一段の訓練が必要なのです。 しかしそれは、プログラムがとても習得できない難しいものである、ということでありません。プログラミングが自由にできるためには、より長い時間がかかりますが、多くの人は数週間から半年ぐらいで簡単なプログラムが書けるようになります。だれでも時間をかければだんだんプログラミングの能力は上達します。本講座で様々なアルゴリズムの例を知ることも自分でプログラムできるための第一歩になります。長い道のりですがぜひがんばってください。

1.5 セクション 1 のまとめ

_images/slide_01_060.png

本セクションでは、AI・機械学習を習得する上で、実際にそれらを動かしてみることがなぜ有用であるかを説明しました。 他講座を学ぶときの基礎知識としてPythonプログラミングの基礎を身につけましょう。

プログラムをみて完全にプログラムを理解したり、自由にプログラムが書けたり、というところまでは目指しません。

プログラムのだいたいの仕組みを理解して、だいたい何をやっているか見当がつくようになることを、目指していきます。