随筆:「プログラミングに夜が更けて」

by ご近所のきよきよ


プログラムを作っていて、困ったなと感じるのは、自分で作ったコードなのに、すっかり忘れていることですね。2年前はバグを見つけて直そうとしたときには、始めからコードを全部読み直し、再度理解するという作業が必要でした。全く覚えていないという恐ろしい状態で、プログラムを作っていたのです。この頃は流石に覚えられるようになりましたが、それでも、つっかえつっかえで、完全には覚えていません。大きなプログラムは20年くらい作っていないから、頭が錆び付いてしまっても仕方がないことで、まだまだ、リハビリは続きそうです。


今は、フリーハンドの英子文字認識のプログラムを作っています。英字は曖昧性が少ないから、2ヶ月くらいで大枠はできそうです。とは言っても、完全に人間のレベルに持って行くには、1年とか2年くらい掛かるのではないでしょうか。先ずは計算機に都合の良いレベルで、何となく認識することを目指して、ノウハウを蓄積していき、だんだんに人間の認識に近づけていく。人工知能プログラミングの王道ですね。その道を歩んでいます。

新しい試みもしました。細線化は行わずに、ラインの端点と分岐点を認識し、ライントラッキングをして、曲線の曲がり具合を計測することも行っています。といっても、文字の線は4ピクセル幅以下ということを仮定してコードしました。文字認識を目指すだけならば、細線化して、整形処理を加えた方が、プログラミングは簡単でした。細線化していなくて、トラッキングとかには苦闘しました。1ヶ月苦悩しても、まだ動きが変です。


こんな苦闘のなかで、得たアイデアも幾つかあります。とりわけ哲学的なのは、「曖昧なデータを処理するには曖昧性のない計算機みたいなシステムでないとできない」というものです。厳密に解析できないと、本当の意味で曖昧性を評価できないのです。曖昧性は文脈というレベルの管理情報システムを持って、柔軟に、しかも精密に処理していかねば扱えない事柄なのです。それに気づきました。人間って、結構精密なシステムなのです。人間に近づくことは、いい加減なつくりのシステムにはできないこと。

それともう一つ、「パターン学習は思うほど難しくない」というのもありました。基盤のデータを用意するアルゴリズムは大変なのですが、それができると、上位のアルゴリズムは、マッシュアップしていけばできるという、快適さを味わったのです。ならば、基盤データを沢山用意していけば、あるレベルで、単純な「選択と組み合わせ」で全ての必要なデータができて、どんな微細な違いをもキーにしてしまって、パターン分類ができるのではないか・・・。つまり、学習システムを展開できるようになると考えたのです。

プログラムは3階層になって、文字を解析しています。

あっというまに1ヶ月が過ぎてしまって、2ヶ月目に入りました、はてさて、このプロジェクト、・・・成功するでしょうか。まだ、何となく動いているというレベルです。なんせ、コードを殆ど忘れているのですから。


おわり