#5909

人工知能作成の第一歩


web制作

いつの間にか84万アクセス突破していました。02月21日に越えていたみたいです。
いつもありがとうございます。なんだか良いペースなのでこのまま90万アクセスを目指したいところ。

さて、今日はメインPCに「(パイソン)」というプログラミング言語の環境を揃えていました。
といってもVisual Studio Codeには去年の大晦日にプラグインを入れたし、
今日やったこともAnacondaとJupyter Notebookを導入してHello WorldをPrintしただけなのですが。
Pythonについては導入に役立ちそうな本を1冊買ったので、
これをとっかかりにして進めていきたいと思います。
ちなみに、この「本を読んでプログラミング言語を習得する」というスタイル、
実は自分の中では過去にただの一度も成功した試しがありません。
Perl、ActionScript、enchant.js、Unityと、2,000円以上の良い本を買ってきたにもかかわらず、
挫折しては次、挫折しては次という愚行を繰り返してきました。
まったく使っていない、習得済み言語のリファレンス本などを含むと、
合計2万円くらいはドブに捨てているのではないでしょうか。
今回は0勝4敗の5戦目ということになります。

おそらく、自分は本を読みながらプログラミング言語を習得することに向いていないのでしょう。
動かしながら、必要な部分だけを習得する方法でしか学ぶことができない。
しかし、それでは永遠に偏った知識のままです。
なんとかしてこれを克服することはできないものだろうか。

ただ、本がまったく読めないと決まったわけでもありません。
そもそもかつての自分は、基本的に目的意識が曖昧でした。
上記の4言語のうち、ActionScriptからUnityまではゲームの開発に有用な言語(ツール)であり、
着手したのは「いつかゲームを作りたい」という野望に基づくものですが、
それはあくまで「夢」であって「目標」ではありませんでした。
できたらいいなとは思っていましたが、当時の自分ができるとは思っていなかったわけです。
そんな意識で、目の前の壁に取り組めるはずもありません。

今までの自分はプログラミング言語は、外国語の習得のようなものだと思っていました。
日本人が英語を学ぶとき、「Have a nice day.」という文章だけ学んでも何の意味もありません。
「英語圏の人と話せるようになる」という目標をクリアするためには、
英語という膨大な情報量のうち、少なくとも日常語の範疇を網羅する必要があるわけです。
学習の途中経過に得ているスキルでは英語の会話はできないので、役に立ちません。
ある一定のレベルに達して初めて実用的になります。

プログラミング言語もそれと同じだと思っていました。
膨大な数の関数が存在するので、まずはそれを覚えないと書くことすらままならないものだと。
しかしPHPを実際に習得してみた経験から言うと、
プログラミング言語は書くことで初めて関数の存在を知ることの方が多いです。
英会話と違って相手が機械なので、こちらが調べるまで待ってくれるので、
あらかじめ頭の中に関数を網羅しておく必要がないわけです。
かといって、何も学ばなかったらさすがに書けません。
実際にプログラミング言語を書くのに必要なのは関数(語彙)ではなく、基本構文(文法)です。

変数に値をどうやって入れるのか。if文はどうやって書くのか。
究極的にはこれだけ抑えておけばプログラミング言語は書けます。
プログラミング言語は「関数型言語」と「オブジェクト指向型言語」に分類されるのですが、
関数型言語の方はもっと簡単です。基本式は1 + 1 = 2と変わらないのですから。
そして関数型言語はみんな兄弟のようなもので、ひとつ習得すれば他の言語も容易に理解できます。
ただ、関数型言語に慣れているとオブジェクト指向型言語はちょっとハードルが高いですが、
いずれにしろ、プログラミング言語は外国語のように
根気よく学ばないと成果がでないという類のものではありません。

昔の自分はこの辺を根本的に勘違いしていました。
だから、実践せずに本を読むだけ読んで最後まで行く前に疲れてやめてしまっていたのです。
習得したらその都度、それを使って実践していたらまた違った結果だったかもしれません。
プログラミング言語の教本を「読むだけ」というのは退屈極まりないので、飽きて当たり前です。

今回、本を買ったのはPythonの習得のためというより、
それに付随して必要になってくる高校数学の知識も得たいという理由があったからです。
Pythonだけ習得できればいいのなら、ネット上に有用なマニュアルがあるので本は要りません。
ただPythonを動かしながら数学を学べる教材となると本を買うしかないので、
今回は例外的に本を買って学ぶことにしたというわけです。
ただその場合でも、「動かしながら学ぶ」ということは意識していきたいなと思っています。

ちなみに、以前も書いたかもしれませんが自分がPythonを勉強するのはこのブログのためです。
具体的には、ブログのタグ・カテゴリを自動付与できるようなシステムを作りたい。
そのためには主に自然言語処理と機械学習の分野をある程度マスターしなければなりません。
自然言語処理分野では形態素解析などの言語学の分野が関わってくるし、
機械学習では微積分や統計、確率といった数学の分野が関わってきます。
なかなかレベルは高いですが、「ゲームを作る」よりは具体的かつ現実的かなと思っています。

なんにせよ、楽しく学んで行けたらそれに越したことはないのかなと。
できれば、ブログ解析に着手する前に何か小さな「Pythonで作れるモノ」に着手したいですね。

今日は02時就寝12時起床。休日にしては早起きでした。
Pythonの勉強をほんのちょっと進めて、読書も100ページほど進んだので悪くはなかったかなと。
最近、連日都心に遊びに行っているのですが、その話はまた改めて書きます。

0

コメントを残す