2019年1月13日日曜日

AIのためにプログラム言語を始めたよ:Python関連サイト

新年になりプログラム言語を学んでいる。といっても独学である。興味を引いたのはPythonという言語である。

なんのために?

やりたいことがあるのである。だいたい想像がつくと思うがAIである。待っていてもなかなか降臨してこないので、こちらから取りに行くことにした。正月休みにざっと調べたところAIにはPythonが良さそうである。

戦略は以下だ。

  1. 本は一冊も買わない(ネットですべて済ませる)
  2. 無駄なことはしない(学びながら最善手を常に模索する)
  3. 具体的な目標を持つ(これは秘密。具体化したい対象は2〜3ある)
  4. 今月中におおよその概念と文法を身につける。


これまでのつたない経験からいえること:

  1. 自分から動かないと果実は手に入らない(人より早くは・・・)
  2. 自分から動くと、なぜか人や情報が近づいてくる


というわけで少し積極的に出ることにした。

学習のためにネットのメモ帳を作る。

(1)ネットによる学習塾系

Python学習コース
  ボクには丁度よい。どんどん進んでいく。現在3年生である。4年生になると「クラス」という概念が登場する。

(2)用語概念系

Python/クラス(Wikibooksより)
「クラス」という概念が重要のようである。気になって仕方がない。
 これをいち早く身につけたい。

クラスって存在する意味があるんですか?

よく使われるプログラムとはどんなプログラムであるのか・・・素人でもわかること

  1. 無駄な処理が少ないこと(打ち込みができるだけ少ないこと)
  2. 使い回しができるだけ可能・容易なこと(サブルーチンに任せたい)
  3. 変更が容易であること(上司はわがままである。明日の朝までに変更せい!)
  4. 流れが容易に見て取れる(プログラムを引き継いだ後継者にもわかる)
こんなところだと思う。

クラスとかモジュールだとかインスタンスだとか「うわーやめて」というくらいいろいろ出てくるが、こんなのは適当に付き合っていれば良いと思うのは年を取ったせいであろうか。

クラスとかモジュールだとかインスタンスを作った人たちも、大して難しいことを考えているわけではないのであろう。上の4つに苦労しただけなじゃないかしら。プログラムって巨大化・複雑化が宿命のようだし。

とはいえ「クラス」なんて1970年にはすでに存在した概念のようですな。御年50年になろうとする古典的概念なので、今のプログラマーたちにが生まれたころには立派に存在していたことになる。ということは今のプログラマーは構造化言語が存在しない時代を知らないということです。

「クラス」を理解したいのであれば「クラス」が存在しない言語でプログラムするといいと思うな。

同じ関数を使いたいのに変数が「浮いている」。こまったな新しい処理がやってきたよ。使いまわしたいのに。一旦おわったことにして・・・このために「self」と宣言してみる。
とりあえず__int__と宣言してみる。お前は止まっているけど、こちとら「動的」なのよ。忙しいんだから、そのつもりで付き合いなさい・・とCPUに言われている。

私にはこのように見える。間違えていたら「随時修正だ」。とにかく前に進まなくてはいけない。「self」と宣言してどんどん前に進もうと思う。

☆☆ ついでに参考ページなぜクラスを使うのか?
















言語は違うが考え方として参考になる。

ついでにもう一つ

「オブジェクト指向プログラミングを用いるメリット」
  • 変数をクラスという枠でくくると、変数同士の結び付きが強まり、意味が明確になる
  • 変数 (データメンバ) に対する処理をもクラスに含めることで、その処理と変数との結び付きが強くなり、意味が明確になる
  • データ隠蔽により変数のアクセスに制限をかけ、バグの危険を減らす
上の2つ「意味が明確になる」というのは保守性が高まる (メンテナンスしやすくなる) ということらしい。

さらに謎の3大要素というものがあるらしい。

データ隠蔽」の他に、「継承」、「多態性」を加えてオブジェクト指向の三大要素

この「継承」「多態性」というのもきっと擬制であり「かっこつけ」のはず。いつかベールをはいでやるぜ。

(3)書籍系

本は一冊も買わないけど、立ち読みはする。今日中に下記4冊を本屋で眺めてこよう。
 (②はキンドルなら無料であるが・・・)



(4)ハードウェア系

昨日本屋に行って初めてPythonの書棚を探った。上記①はあったが4000円で600ページもある。ちょっと敷居が高い。興味が続いたら買うかもしれない。

その書棚の近くに講談社のブルーバックスが置いてある。ブルーバックス顔つきが最近変わったな。最近の本は少し青みが薄くなっている。新装ブルーバックスのなかにRaspberry Piという一風変わった本があった。講談社のブルーバックスには3冊もRaspberry Pi本がある。立ち読みした。






Raspberry Piというハードウェアが2012年から売りに出されている。5000円〜10000円くらいであり、これがプログラム言語 と相性が良い。というか機械学習やdeep learningに特化しているのだ。この名刺サイズのCPUにはカメラが付属していて、これが取り込むイメージを画像解析するという。もちろんプログラムはついていない(ついていたら意味がない)。ソフトを作るのは(切り貼りするのは???)私である。そしてこのハードウェアに相性が良い言語がPythonなんですって。









なんだか楽しいな。40年くらい前にNECが売り出した(1976年らしい)「TK-80」(販売価格: 88,500円だったんだ!高い)を思い出す。そして「TK-80」に機械語を直接打ち込んでいた驚異の学友のことを思い出した。


当時のボクの学友はサーモスタットから気温情報を取り自分の部屋のクーラーの電源をこまめにオン・オフするソフトを自製していたから大したものである。(学生が買えるクーラーには温度調節などついていなかった。強・中・弱くらいだね、選べるのは)

この「初代民間商用パーソナル・コンピュータ」もプログラム言語(といっても当時はアセンブラくらいしかない。 Basicはまだまだその後だ)を学びながら自分でソフトを入れていく。通常アウトプットは上記写真の右上の8個の16進数の表示だけであった。この「パソコン」のアウトプットはいろいろ選べる(ソフトの中では)のだが、それが「consor」と表現されていたのは鮮明に覚えている。その「consor」が今回のPythonの文法でも使われているのには驚きと懐かしさで一杯である。古代語は脈々と生き続けるのだな。

さて長くなったがこのRaspberry Piの面白さを伝えるために書評を一部コピーしちゃえ・・・

この本が一冊あれば、ラズパイで機械学習を実験できるというすごい本。
おまけにわかりやすい。というか、わかりやすさにかける著者の情熱が伝わってきます笑
自分の手を機械学習で認識するとか、けっこう面白いことができます。
ハードとソフトを使った機械学習を実際に試してみたい人には特にお勧め。



2 件のコメント:


Takamune さんのコメント...
すでにご存知かも知れませんが、無料の教材です。お役に立てば幸いです。

メディカルAI専門コース オンライン講義資料
https://japan-medical-ai.github.io/medical-ai-course-materials/index.html
Epistasis さんのコメント...
Takamuneさん

早速の情報ありがとうございます。メディカルAI専門コースのことは知らないわけでもありませんでした。このコースを一つの努力目標に頑張ってみたいと思います。そこでもPythonは必須のようですね。

さてこの専門コースの母体のメディカルAI学会の設立も存じ上げており、今月の終わりに国立がん研究センターで一回目の集会がありますが、小生それには間に合いません。次回の集会までにはその内容が分かる程度にはなっておきたいと思っています。

いずれにせよすぐに情報をくださる方がいて嬉しいです。感謝申し上げます。
これからもよろしくお願い申し上げます。ありがとうございました。

epistasis





2 件のコメント:

  1. すでにご存知かも知れませんが、無料の教材です。お役に立てば幸いです。

    メディカルAI専門コース オンライン講義資料
    https://japan-medical-ai.github.io/medical-ai-course-materials/index.html

    返信削除
  2. Takamuneさん

    早速の情報ありがとうございます。メディカルAI専門コースのことは知らないわけでもありませんでした。
    このコースを一つの努力目標に頑張ってみたいと思います。Pythonは必須のようですね。

    さて母体のメディカルAI学会の設立も存じ上げており、今月の終わりに国立がん研究センターで一回目の集会がありますが、
    それには間に合いません。次回の集会の内容が分かる程度にはなっておきたいと思っています。

    いずれにせよすぐに情報をくださる方がいて嬉しいです。これからもよろしくお願い申し上げます。

    epistasis



    返信削除