[管理者用]

イゼルローン日誌
宇宙・・・それは人類に残された最後の観光地である

         
戻る 
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
1998年
1999年
2000年
2001年
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
2016年
2017年
2018年

2018年08月
8月19日 ・歌丸師匠の四十九日か。
・久しぶりのPSoC Designerは懐かしさ満点。初めて使った時は随分悩まされたよなぁなどと思い返しつつぼちぼちと設計。
・ずっと使っていなくてもすぐ使い方がわかるというのは優秀な証拠だな。
・というところで、PSoC1でUART通信をまず動かす。送信割り込みが入った途端に動かなくなるという現象で悩んだけど、要するにステータスを引き取っていないので、2発目以降の割り込みが入らなくなるという単純な理由だった。
・基本的なところはわかったので、あとは一気に書くだけだな。
・その間に、必要な追加部品と、ついでに最近良く使うXHコネクタを秋月さんで手配。


8月18日 ・ちょっとした試験用の装置を作ることになって、どうやって作るかちょっと検討。
・新たに何かを買ってくるより手持ちで済ませたほうが楽でいいなと考えているうちに頭に浮かんだんのが、久しくご無沙汰だったPSoC1。
・すっかり使わなくなっていてPSoC Designerも消してしまっていたので、改めてダウンロードしてきてWindows10環境にインストール。「SVG Viewerのバージョンが合わないぞ」というメッセージが出るけど、強行したら別に問題なく動いてくれた。
・とりあえずMiniProgもあるし、これでいくか。
・ショップを作り変えようかなとも思ったけど、決済などのことも考えるとこの際どこかに出店するほうがいいのかと検索していたら、Yahooが意外とリーズナブル。
・まぁ、この世界じゃ圧倒的にAmazonが強いけどね。

8月17日 ・ちょっと面白半分で、趣味のサイトでちょっとしたアフィリエイトをやってみたら一週間で200円ほどになった。振り込み手数料にもならないような金額なので、結局使いみちのよくわからないポイントカードのポイント残高みたいなものだけども。ただ、こんなものでも興味を持って購入する人がこれだけいるのだなということはよくわかった。
・本腰を入れて、これだけで相当程度稼いでいる人もいるのだろうな。

8月16日 ・原稿書き。だいぶ進んだので、改めて基板のテストをしていたら、ブートローダがうまく起動しなくなった。あれ?間違って消したかな?

8月15日 ・あの日」が巡ってきて、その手の番組をよく目にする。自分の意志とは関係なく死にに行かなくても良いということは幸せなのだという一言がちょっと刺さった。
・AI絡みで、ざっくりと学習の仕掛けを見てみる。要は入力から得られる出力が期待値に近づくように調整していくわけだ。
・「差の大きさ」、つまり絶対値を知りたいなら自乗してやればいいのだな。
・ちょろっと眺めると、偏微分がやたらとでてくる。力がN個あってそれぞれが独立して出力に影響を与えるということなので、入力それぞれが出力にどのくらい影響するかをひとつずつ検討して、最後に足してやりゃいいやという発想なのだろう。
・入力それぞれがベクトルだと思えば、これは出力のベクトルを入力ベクトルに分解しているわけで、別に内積がゼロである必要はない…つまりある一つの影響が他に及んでいてもあんまり関係ないという考え方もできそうだな。

8月14日 ・8月14日・・・歯医者の日・・ではないのだろう。
・AIについて再び妄想していた。結局内部的にはひたすらやるだけなのだけど、「学習済みのもの」っていうものも、それ自身で価値を持ったりするのだろうな。

8月13日 ・昨晩ソフトボールの決勝の試合を見ていた。日本はエースなピッチャー一人におんぶに抱っこ状態。高校野球じゃあるまいに、「肩は消耗品」という言葉はどこへやら。
・サマータイムがどうのこうのと言っている。どうも夏時間に切り替わることばかり取り上げているけど、当然逆もあるということも考えなくてはいけない。
・ところで・・たとえば2時間早めるとすると、たとえば23:59の後はいきなり02:00になるのだろうか。これはまだいいけど、逆になるときは、1:59の次が0:00になってしまうのだろうか。とすると、同じ時刻が二回現れることになるのか。
・ファイルなどを日付時刻で管理していると、前後関係がややこしいことになりそうだな。まぁ、例によってエポックからの秒数で管理しておいて、表示だけ調整するっていう格好なのだろうけど。
・夜勤などの場合には、2時間余計に働かされたりするのだろうかな。
・だいぶ時間がたつけど、某携帯電話会社のCMの絶叫がうるさくて仕方ない。あれを世間では熱唱とか上手いとか言うらしいけど、なんかリミッターがかかってしまったようで、声に厚みもなく、”声量感”がない。お世辞にも上手いとは思えず、ただただ耳障りなだけというのが正直な感想だな。

8月12日 ・そんなところで、帰省先から2泊3日でリターン。
・帰りは驚くほどのスムーズさ。いつも渋滞になる首都高のジャンクションも完全ノンストップ。逆向きは大渋滞だけど、こちらは止まることなくドアツードアで1時間ちょっと。帰省先からの戻りとしては記録的かもしれない。

8月11日 ・実家で原稿を書きながら並行して勉強する。
・日付を見ると、昨年途中で放り出している問題集をパラッとめくってみたりして、もう一回ちょっとやり直ししてみる。
・昨年は固着してしまってどうにもならなかったギヤが少し回りかけてきたような感じがある。もう少しスムーズに回るようにしないとな。

8月10日 ・ちょっと帰省する。行きはよいよい・・ではなく、ひどい目にあった。高速が混んでるよというので、下道を少し走ってみたらこっちもあっちこちで大渋滞。
・今年はNEXCOが、休日割引を木曜日と金曜日に切り替えた。名目上では混雑の分散ということだけど、そもそも運輸関係はこの時期まだ盆休みには入っていないわけで、業務用の車が多いところに持ってきて一般車両が殺到するということで、最悪の事態になるのが当たり前。

8月9日 ・そんなところで、某大学入試で性別だの年齢だのによる得点調整をしていたということで騒ぎになっている。
・見聞きする範囲だと二次試験が論文と面接で、そこに得点調整をしたということだけど、どちらも言語野が主体となるだけに、女子学生のほうが得点しやすいであろうことは容易に想像がつく。
・それで「女性学生だらけになる」ということなら、入試の項目を変えるなり、男女別募集にでもする方向だろう。
・ところで、この場合の性別は戸籍上のもので行われるのか、本人の性自認なり自己申告によって行われるのか、ちょっと興味のあるところでもある。

8月8日 ・AI絡みでもう少しあちこち探してみるけど、結局このパラメータのチューニングというのが結構な研究課題ということらしい。そりゃそうか。この膨大な量のパラメータをいかに調整していくかというのは難しいに決まっている。
・まぁ、昔に比べたらメモリ容量にせよ、演算能力にせよ、ほとんどギャグでしかなかったようなレベルに達しているわけで、そりゃやり放題できるだろうな。


8月7日 ・CQさんのAI絡みの本が2冊ほど入手できたのでザッと目を通す。
・まぁ、先日の理解でもそれほど大きくは外していなかったような気がする。だいたいCNNにせよ、RNNにせよ、エンコーダにせよ、何をどうしたいのかという趣旨はわかったような感じ。
・まぁ、確かにやり始めたらいくらでもテーマはあるし、応用というのか変形もかなり自在で、意外性のある結果も得られやすいだろうし、世間的にも「人工知能」とかいうと受けはいいってことで、これは流行るのも道理だな。
・やっぱり問題は学習の時にパラメータをどう更新するかということなわけだけど、これは結局一つのデータを元に判定が正しくなるようにチューンして、次のデータで正しくなるように微調整して、更に次のデータで正しくなるように更に微調整して・・・という具合に微調整を繰り返しながら収束させていくしかないのだろう。
・ざっくりやっていることを見ていると、本当はそれぞれの神経細胞・・ニューロンに当たる部分ごとにオブジェクト化して相互の連結を記述したあとで並列動作させたいところなのだろうけど、処理速度が稼げないので、データ側に注目して行列演算で始末をつけているのだろう。
・ニューロン側にたって学習と収束の問題を考えているうちに、結局ゲインが1、位相が2nπだけ回転したら発振していつまでも正解にたどり着かない・・・なんていうのも連想してしまう。
・さて、何か適当なネタを決めて、ちょっとこのAIのミニミニ版をワンチップマイコンにでも埋め込んで遊んでみるかな。
・記憶の彼方に消え去ったデータ駆動型プロセッサなんていうのがホイホイと出てきたりしないのかな。今「データ駆動 AI」とかで検索すると、違う方向の話ばかり出てくるけどもね。
・というところで、夕方にちょっと打ち合わせ。新しい商売をちょっと考える。

8月6日 ・どうも、ネットワークの渋滞状況を見ていると、ある程度大きなサイズを持って来ようとすると急激に遅くなって、その後はまた復活するという、なんだかデータ量に応じた帯域幅制限を受けているような感じがする。
・回線を共用している家が多いということなのかな。別に動画見ようとか、リアルタイムの対戦ゲームしようとかいうわけでもないけれども。

8月5日 ・ノートPCの内蔵無線LANが不調だ。あまりにもひどいので、外付けのアダプタを買う。ポイントがあったのでお支払い700円なり。
・ちょっと変なことに気付く。ホストOSの上からアクセスするとそれなりの速度なのに、仮想マシン下からアクセスすると極端に遅い。LANに接続してping打ってるくらいならそれなりだなと思ってブラウザで見るとガクガク・・そして、その後pingシてみると通常の200倍くらい時間がかかるというとんでもない事態。
・さて、どうしたものかな。

8月4日 ・さて、またまたもってCNN。
・学習過程では、一連の入力データ(たとえば、数百人分の0〜9の数字)全部でそれなりのチューニングをしたら最初に戻ってまた同じデータを食べさせてみて学習させるということをするのだろうと予想していたら、そのとおりで、このサイクルの1回分を「エポック」というらしい。
・畳込みのところもちょっと違うということもあるようだけど、詳細はまた別途。そして、畳込みのあとに得られたデータにちょい足し加工をするのが「活性化関数」というらしい。
・Wikipediaさんによると、しきい値を超えるか否かだけで判断するというのが「ステップ関数」
・アナログ的に変化するものとして、磁性体のB-H曲線みたいなS字っぽいカーブを描いて飽和していく「シグモイド関数」だの、log(1+e^x)という、なだらかにダイオードのV-I曲線みたいな増加を示すソフトプラスだの、0以下なら0、0以上なら入力と同じというランプ関数とか、まぁ、いろいろ考えられているようだ。
・結局ほとんどの場合には、「入力が小さいほど出力は小さい」「入力が大きいほど出力も大きい」けれど、その間をどう関連付けるとエレガントに収束するかということで、実際には試行錯誤なんじゃないか?という感じがムンムンである。

8月3日 ・某連盟の会長さんへの忖度だかおもてなしだか・・ということで、テーブルの上にズラッと並んだ日本酒だのフルーツ類だのの写真が流れていた。これで壁際にこの某氏の写真(現役時代が良いのか?)でも置いてあったら、何か違うものに見えてくる。周囲の方々の声も、機嫌を損ねるとどういう祟りがあると言っているように聞こえるな。
・そんなこんなで今日も暑い。夕方になってちょっと雷もあって普通に雨が降ったけど、結局蒸し暑くなっただけ。
・チュートリアルの原稿がやっとできた。次はファーストステップと、ちょっとした実践編だな。
・昨日のCNNの続きだけど、まだ学習過程の具体的な手法はみつけられずにいる。これは実際にサンプルでも動かして調べてみるしかないのかな。
・プーリング層は多分固定(プーリング層の小ピラミッドの範囲内で最大のものを選ぶということらしいので)なので、”学習”は最後にある全結合層と畳み込み層のフィルタ(入力の重み付け)のさじ加減で行われるのだろう。
・旧来はこの部分を人手でやっていたのだけど、そこを多量のサンプルデータと答えの組み合わせから自動永久に的にチューニングしていくというのがまさに「機械学習」ということになるのだろう。
・ただ、フィルタにしても、全結合層にしても、単なる2値データとするにしても、あまりにも調整箇所が多い。
・パラメータを少し変えては入力データパターンを与えて、正しい答えが出るようになったら次のデータでやって・・と繰り返して、また最初のデータに戻って・・・というのを繰り返して”ほぼ”全部の入力データパターンが正しい出力と結び付けられるようになったらOKということなのかな。
・でも、これを力技でやっていたら大変な時間がかかりそうだ。あぁ、だからGPUなんかを使おうとするのかな。
・もちろん、一度それなりのフィルタができてしまえば、それに応じてデータを処理していくだけなので、どうっていうことはないけど、そこに至るためのパラメータを得るのが大変ということで、「難しくはないけど面倒くさい」計算が続くわけか。
・ただ、この学習過程でGreedy(貪欲)な選択、つまり「以前うまく行ったから」というところでどんどん固定させていくと、実は一時的には良くないように見えても最終的にはもっと良くなるパターンというものを見逃す可能性が出てくるはず。
・このあたりが「過学習」っていう言葉とも繋がるのだろうな。


8月2日 ・流行りにのってちょっと人工知能絡みなディープラーニングについてあちこち検索してみる。
・結局のところライブラリ+Pythonということが多々であまり要領を得ない。独特の用語もあるので、そのあたりも結構な障壁なのだな。
・とりあえず、そこらの解説なども含めてぼんやりと見えてきたことだけ書いておいてみよう。未来の自分はこれを読んで笑うのかもしれないけども。
・サンプルで良くある画像認識の類もそうだけど、いずれにしてもAIのメインテーマの「認識」だの「予測」だのというものを一言で言えば、入力データ列から、いかに「人間にとって妥当と思われる値(過去の経験と矛盾しない値)」に収束させるかということになるわけだな。
・ニューラルネットにしても何にしても要は「収束させる手段」。このために「発散していきそうなものを抑えこむ」ことが必要になる。
・これを普通のプログラムでやっているとものすごいことになるということはすぐ想像できるわけで、もっと簡単な方法が無いかというのを考えなくてはならない。
・そこで、神経ネットワーク(ニューラルネットワーク)にヒントを得て、比較的限シンプルな演算をするユニットをたくさん用意しておく。このユニットで階層構造を作っておいて、一番下にある入力データから第一段目の階層のユニット群が一次処理をして第二段目に渡す。第二段目は一段目の出力を使って第三段に渡す・・とやっていくわけだ。
・手書き数字の認識なんかで例としてよく使われるCNNなんかだと「畳込み」と「プーリング」を使う。
・畳み込みっていうのは、要は縦横の行列の一部を切り出して、場所による重み付け加算をした結果を出力値とするものをズラーッとならべたもの(図にすれば、四角錐や四角く根を張った花壇の寄せ植えっていう感じ。四角錐の頂点はこれまた四角い行列になっている。元画像より数は減ってる。重み付けするので、フィルタというのか、マスクパターンみたいになる。
・プーリング層っていうのは「Down Sampling」だなんて言われるけど、基本は四角錐や「根を張っているイメージ」は一緒。よくやられるのは、「自分が取り込んだ範囲の中で一番大きな値を取るよ」ってこと。
・これがまたズラーッと四角四面に並ぶわけだけど、これもまた数は減ってる
・そこにまた畳み込み演算の層を置いて・・・とやっていくとどんどん数が減っていく。
・遠目に見ると、これで一つのピラミッドになってるわけだけど、こういうピラミッドをたくさん用意してやると、ピラミッドが一列に並んだようなものができる。
・このピラミッドの頂点データパターンを、最終的な答えと結びつけられるようになればいいわけだ。この最終段階のところを「全結合層」なんて言っている。
・仮に全結合層の前にピラミッドが10個あって、それぞれの頂点から出てくるデータが2値データだとする。すると、全結合層の入力は10bitデータということになる。
・そして、全結合層の出力が2進の8桁(8ビットデータ)ということなら、要するに10ビット2進の羅列から0x01とか0x02・・とかっていう値が出てくる(数字認識だと、出力は10ビットにして各ビットを数値と対応させるらしい)。
・この例(10ビット入力、8ビット出力)なら要するに1kバイトのRAMだと思ってしまっても良いだろう。
・CNNがこんな方法を使ったのはたぶん、手書き文字なんかだと、縦横に歪むことが多いから。
・たいていの人はそれなりの領域に数字を書いてくれるわけで、逆さまに描いたりする人も少ないから、四角い覗き窓を移動させながら縮小していけば、縦横や若干の斜めのズレや歪みなんかの影響も排除されて収束するだろうという読みなのだろうな。
・そして、こういう形のものに「学習」させることが大事になる。いろいろなデータを与えて最終出力が誤答だったときには「ちょっとパラメータを変えて」というのを自動でやらせる必要がある。このあたりのからくりはまだ不勉強。もうちょっと調べよう。

8月1日 ・8月に入った。あと、五ヶ月をクリアすることに専念せねばな。とりあえず、今月末に向かって原稿書きである。
・先月15日に設計&発注した基板だけど、未だにprocessingのまま。詳細を見たら、23日にPCBA Awaiting Packing(注文は品質検査と包装中です)となっているのだけど、それから一週間以上。品質検査で引っかかっているのかな。そんなに難しい基板を作っているわけではない。部品は12個載ってるのを10枚分。それもSOPが1個、USBコネクタが1個で、あとはC,R,LEDというところなのだけども。
・先日ちょっとおもしろがって入れてみたGoogleのアドセンスだけど、やはり無様なのでやめる。やっぱり品が無いね。


前月
エース