教団「二次元愛」

リアルワールドに見切りをつけ、二次元に生きる男の生き様 (ニコニコでは「てとろでP」)

所沢航空発祥記念館

2020-09-22 19:55:22 | 科学



所沢航空発祥記念館!
東京の北西方面ってほとんど行ったことがないので無理やり行ってみた。





屋外展示のYS-11。
わいには全く思い入れがないけれど、わが国の金字塔的作品である。





これも屋外展示。
昔の人が考えた未来的デザインあふれるレトロフューチャーな塗装が逆に新しい。





空冷星形はロマン。





こんなに近場で見れる。





複座の人と人の間に補器がたくさんある。
重量バランスの問題……?
後部座席の人が操作するの……?
それとも故障時に人力で何とかするため……?





ジェットエンジンの切り身。





高圧タービンと低圧タービンで羽の形状が違うのがよくわかるのがシビれる。





最初期の航空機の本体部分。
エンジンのフィンが短い。
こんなんで冷えるほどしか出力がなかったのか……?





航空機にも水平対向があったらしい。
まあたしかに前方投影面積を減らすにはこっちのほうがいいような……?






九一式戦闘機のホンモノ。
(下はwikipediaからとってきたやつだが)

wikipediaには

> 胴体は、初の流線型全金属機体を採用しており、

とある。
垂直尾翼は布張りだった。
「胴体は」全金属なのね。







個人的な本日の目玉!!!

三式戦闘機「飛燕」のエンジンのホンモノ。
(これも下はwikipediaからとってきたやつ)

見たまんま水冷V12気筒だが、wikiによるとなぜか誉エンジンより先のリリースだったらしいが、誉エンジンより出力が低かったようだ。

やしか靖国の遊就館には、おなじ水冷の彗星が展示されてたような。





二回からみるとヘリのローター部分がよく見えるのもよい。
まじまじと見てみてよくわかったのだけれど、回転翼の仰角とか変えられるようになってるのね。





速度が増すにしたがって前方投影面積が小さくなるの図。
あらためて比較を見ると興味深い。



人間の脳の自然言語処理 その2

2018-09-02 17:32:36 | 科学
日本語でも英語でもない言語にいい歳になって手を出すと、その習得過程を自分で人体実験して観察できるのでおもしろいものがある。
これまで書いたことはあるが、あらためて言語の習得過程がどうあるかを書いてみる。



(1)
まったく聞き取れない。

 ↓

(2)
何語かくらいはわかる。
けれども内容がわかるほど聞き取れない。
(我輩、現在ここ)

 ↓

(3)
ひととおり聞いたことある単語が使われていたような気がするが、それぞれの単語が何の意味だったかまで忘れた。
辞書が手元にあれば意味がわかるかも?
(よくある)

 ↓

(4)
それぞれの単語は意味はわかるのだが、文章全体としての意味を頭の中で構築できるほどの情報を頭の中にとどめておくことができない。
たぶん書いてあるとわかるんだろうけど聞くとわからない。
(英語だとだいたいこれ)

 ↓

(5)
それぞれの単語は意味はわかるのだが、文章全体としての意味は頭の中でこれから考えて翻訳するから30秒待ってくれ。
(たまにある)

 ↓

(6)
教科書の例文で使われていた文章そのまんまだったので、リアルタイム速度で意味がすんなりわかった。
(稀にある)

 ↓

(7)
リアルタイム速度で意味がすんなりわかった。
意味はわかったのだが、外国語で何と言ってたは日本語の意味から頭の中で逆翻訳しないとすんなり出てこない。
(何度かあった)



上記(6)は、単なる暗記として実装された状態を少し超え、簡単なバッチ処理ができるマクロが実装されはじめた状態だ。

そして上記(7)は、外国語を放りこむと日本語の意味がアウトプットとして出てくるという、丸投げできる言語マクロが頭の中に実装された状態だ。



やはり意味の解釈に顕在意識をフルパワーあてがっているような程度では、自然言語のリアルタイム処理を人間の脳で行うことはできないようだ。

自然言語も、やはりある意味で将棋や公文と同じである。
頭の中にコプロセッサができるほど熟練し、それによって顕在意識でしなければならない処理を大幅に軽減させなければ、それを実用ベースで運用することはできない。
それをいま自分の体で人体実験して見物している。

AI脅威論(笑)

2018-06-29 23:14:41 | 科学
最近どうもAIによって人間の職がおびやかされてどうの、みたいな話が数多くみられるようになっている。

これはどうなのか?

たまに「ひどすぎワロタwww」なレベルのものがあるから注意が必要である。




最近になって急にAIが進歩したのはディープラーニングという方法によるものが大きい。

いや、大きいというか、たいがい全部それ。
IBMのワトソンはディープラーニングではないらしいが。
まあそれはおいといて。

ではそのディープラーニングとは何か?

……というのをマジメに説明するとテラ長くなるのでそれは置いといてだな。

中身はともかく結果だけざっくり言うと、ディープラーニングとはパターン認識のオバケである。

だから、たとえば画像認識で人か車か判別するとかいうのは、従来の人間がアルゴリズムを考えて実装していた人工知能では難しいが、ディープラーニングならうまくいく。

じゃあディープラーニングではうまくいかないモノとは?

プログラミングだ。

プログラミングはパターン認識では作ることはできない。
もしディープラーニングで作れるとしたら、あるコードを見せて誰が書いたのかを推論させるというのならできるかもしれない。まあそんな程度だ。

AIが進歩したらプログラマの職が奪われるか?

従来どおり、パターン認識のアルゴリズムを考えるのが仕事のプログラマは失業するだろう。

というか、すでにしているかもしれん。
たとえば、偵察機で撮影した動画の中から戦車が写っているシーンを抽出せよ、みたいなのはAIに置き換えやすい。
画像から戦車かどうかを判別するアルゴリズムを考える仕事の人はもういないだろう。
(もちろん、それにとって代わったディープラーニング屋さんは引っ張りだこだと思われるが)

しかしだな。
それ以外の分野でプログラマの仕事を代われるかというと……。

我輩、どうにも思いつかんのだが。



世の中には、なんでもAIに置き換わる論な人がいるが。
そういう人の話はマトモに聞かなくてよろしいかと。

部品調達難

2018-05-15 21:27:57 | 科学
さいきん部品がなかなか調達できない。

あるインダクタなど、メーカーにさっさとよこせと言ったら納期9か月ですなどとフザけたことを言いはじめ、それにブチ切れた購買が別のメーカーを探してきたところ、こんどは納期10か月ですなどと言いやがる、なんてことになっている。

おかげで作れば売れるのに作れないという好景気特有の困った事態に……。

どうしてこうなったか?

……というのは、そりゃーもちろん景気がいいからさ、というのではあるのだけれど。

実はもう1つ理由があるらしい。

部品調達難というのはうちの会社だけではなく業界全体の問題だ。
そこで、電気屋さんより車屋さんのほうに優先的に出荷するようにと、どうもお上のレベルから関与があるようだ、とのウワサが流れている。
なぜ電気屋さんより車屋さん優先かというと、車屋さんのほうが外貨をかせぐことに対して貢献度が高いからだ。
まっ、これはあくまでもウワサにすぎないのだが。

そりゃーあんた、優先順位を下げられた我々のほうには納期9か月なんて言ってくるわけだ。

あるコンデンサなど、しばらくはこんな利益率の低いものを作りたくないので、あんたら中国だか韓国だかから調達してくださいな、などと売るほうが言ってくる有様だ。

じゃあどうなるか?

韓国製を使わざるを得なくなっているのだ。

韓国製なんて品質がマジでクソだ。
だいたいこいつら絶対に非を認めないので、書面で品質保証が書いてあってもなんの意味もなさないときた。
ES(エンジニアリングサンプル)品はすばらしいのだが、量産では作りがやたら雑になるだとかというのも韓国製の特徴でもある。

こんなんイデオロギー的な理由がなくとも韓国製なんて使いたくないのだが、日本企業に売る気がないんだから、この我輩でさえ韓国製を使わざるを得ない事態になっているんだよ……。



湯之上氏あたりは
「高品質高価格の日本製は低品質低価格の韓国製に負けたのだ」
といつも言っている。

だが本当に日本製の部品が使われなくなるのは、こういう
「おまえらの言い値で買うからからさっさと持ってこいって言ってるのに、なんでおまえら売る気がないわけ?」
という、今の我輩のおかれた状況みたいなときに起きるのではないだろうか。

そりゃー古くからのファンも離れますぜ。

外国語の文法を勉強する意味は何か?

2018-05-13 01:03:52 | 科学
我輩はいい歳こいてロシア語に手を出したわけだが。

我輩自身が経験した中学校/高校での英語のカリキュラムはほんの少しも参考にしていない。

なぜか?

英会話の能力はほんの少しも見についていないからだ。

どうしてこうなった?

日本国内の受験のために過剰最適化しているからだ。

たとえば、so-that構文をtoo-to構文に変換できるスキルは日本国内の受験のためには必須だが、英会話には全く必要としない。
こんなんネイティブに解かせようとしても「えっ…… ちょっと待って考えるわ」と言われるのがオチだろう。
これは英文法なんて大して約に立たないということの証明でもある。

ではどうすればいいか?

我輩、英語に対するモチベーションは全くないので、どうするつもりもない。

しかし、ロシア語についてはモチベーションがある。

ではロシア語の文法の勉強はするのか?

我輩、受験勉強ほど文法を重要視していない。

ロシア語には格変化という恐ろしく難解な文法がある。
文法だけでいえば英語よりはるかに難しい。
だが、じつは格変化なんぞロクにできなくても、ネイティブのロシア人には変に聞こえるが、それでも意味はギリギリ伝わるのは実戦でわかっている。

だからそんなもん後回しだ。

しかしだな。
独学で外国語を勉強しようとして、なぜ文法の勉強が必要なのかがわかった。

それは、人間の脳が言語的なパターン認識をする場合における問題である。



赤ちゃんはどうやって母国語を憶える?

我輩よく知らん。
だが、最初は名詞をポンと単体で発音するところからスピーキングが始まるようだ。
つまり、まずは単語の暗記力。

そのつぎからマトモな文章で話せるようになってくる。
こ親ないし保育所ないしで浴びるように言語のインプットがなされ、その中からパターン認識で言語を習得していくのではなかろうか。

そこでだ。
どうやってパターン認識するかが問題である。



ディープラーニングでは教師あり学習と教師なし学習というのがある。

教師あり学習というのは、インプットと答えがセットになって渡される。
たとえば、コンピュータに猫の写真を見せて、これは猫であると答えも渡す。

教師なし学習というのは、答えはついてない。
コンピュータに自分でパターンを見つけさせて勝手に分類するようにしてもらう。

赤ちゃんの母国語の学習方法はディープラーニングにおける教師なし学習に近いだろう。

だが、これでは時間がかかる。
ディープラーニングでも一般的には教師あり学習のほうが遥かに組みやすい。

たとえば、ロシア語学習者の我輩に対し
「Я очень устала.」
というインプットがあり、どうやら当人自身が大変疲労したときにそう言うもんらしいと勘付いたとしよう。

で、それを実戦で使ってみたとする。

するとどうなる?

もちろん意味はギリギリつたわる。
しかし、
「おまえゲイなのか?」
ととか
「それロシア人が聞いたらキモいからやめろwww」
とか言われるかもしれん。

なぜか?

細かいことまで解説するのはやめておくが、おっさんが言うときには
「Я очень устал.」
が正しい。

これがわかるためには文法の知識を必要とする。

そう、文法の勉強とは、ディープラーニングにおいての教師なし学習から教師あり学習に近い学習速度を得るためのテクニックだったのだ。

もちろん、so-that構文をtoo-to構文に変換できるスキルを身に着けたとして、それが学習速度に効果的に作用するとはとても思えんけどね。

母国語という外部インターフェース

2018-04-29 01:11:46 | 科学
ロシア人と話しているときに何度かあったことなのだが。

日本語で話すと、なんどか言っても伝わらないことがある。
そりゃーそんなこともあるさ。
相手は母国語でないのだし。

しかしだな。
それでも我輩がロシア語で言えば通じるんだよ。



ここまで読んでみて、みなさん
「そんなんアタリマエじゃん……」
と思うかもしれん。

まあたしかにアタリマエかもしれん。

しかし我輩はそうは思わなかった。

なぜか?

実はこれ、日本人と外国人の間での現象に限らず、人間と機械との間でも同じ現象が起きることに気がついたからだ。



かつて、Windows2000までのころ。

エクスプローラのファイル検索機能は超プアだった。
我輩からしてみれば使い物にならんかった。

じゃあどうすんの?

人によってはファイル検索機能に特化したフリーソフトをインストールした人もいるだろう。

しかし我輩はそうはしなかった。

我輩は、MS-DOSさながら、コマンドプロンプトでdirコマンドを使って検索していたのだ。
まあWindowsXPくらいから比較的マトモになったので昨今ではわざわざ使うこともなくなりはしているが。

で、これは何を意味する?

最近の機械はたいがいは人間にやさしいインターフェースが実装されているが、
そのインターフェースが自分の思ったとおりに動作しない場合、
機械がちゃんと動くように人間に合わせてもらうのではなく、
人間が機械に合わせたほうがてっとり早いのだ。



エンジニアならたいがい経験したことはあるだろう。

何らかの解析をしたい場合、やりたいことをそのまんま実現できるプログラムが世間に落ちていないとしよう。
たとえばエクセルでFFTしようとしたら4096pointまでしか対応してなかったとか、そういうヤツの話だ。

で、そんなときどうする?

大枚はたいてMatlabでも買ってくるのか?

ちげえ。

時には自分でプログラム書いたほうがてっとり早い事もあるではないか。
それだよ、それ。



人間の脳には母国語という外部インターフェースが実装されている。

しかしこいつは国籍その他によって大幅に仕様が異なる。

稀に母国語以外でももう1つか2つ(たとえば英語とか)くらい動くインターフェースを実装している人間もいるが、
それは母国語ではない以上はネイティブ同等の処理は期待しにくい。

こんなときどうする?

「キサマ日本語の勉強やり直してこい!」
などとでも豪語して追い返すのか?

んなわけあるかw

とりあえず相手に実装されているインターフェースの仕様にこっちが合わせれば、とりあえず通信するにはてっとり早いのだ。



とはいえだな……
最大の問題は、相手に実装されているのと同じインターフェースを自分の脳に実装するのに極めて労力を要することなんだが、どうすんだこれ……。

人間の脳の自然言語処理

2018-04-07 14:29:21 | 科学
さいきん趣味でロシア語をぼちぼち始めたのだが、
人間の脳の構造についておもしろいことを発見した。

それは何かというと……

人間の自然言語処理とは、脳内マクロを形成できるかどうかということだ。
それが実体験でわかったのだ。

これだけじゃあ何のことだか全くわからん。
順番に説明していこう。



とあるロシア語の文章があったとする。
例として↓こんなのをあげよう。

Меня зовут Сита.
ミニャー ザヴート シータ

もちろんロシア語をやってない人にはこれを読めるはずもない。

もし仮にロシア語をやってない人に辞書だけ渡して翻訳しろと言うとどうなるかをシミュレートすると……






(注:ここは読む必要はないよ!)

меняは人称代名詞яの生格か対格。
яは「私は」なので、меняはつまり「私の」または「私を」。

зовутは動詞зватьの三人称複数現在。
зватьは呼ぶ。
звать+対格+造格で「~を~と呼ぶ」。
ただし造格でなく主格でも可という文法上の特例がある。

Ситаはこの時点では何なのか不明だが、зватьを使っていることから推測するにたぶん何らかの名詞。

звать+対格+造格または主格のため、меняは「私の」ではなく「私を」で確定。

зовутが三人称複数であるため、Ситаが名詞の複数形と仮定すると「シトーたちは私を呼ぶ」となる。

または。
зовутの主語なしの不定人称文と仮定するとСитаは造格または主格のどちらかになるが、Ситаで造格なのは一般的な格変化では起こりえないのでСитаは主格と判断するのが妥当。
構文は「~を~と呼ぶ」であり単数のяであることからして、Ситаは単数である可能性が濃厚。
つまり「不特定多数の皆さんは私をシータと呼ぶ」となる。

状況から推測するに「不特定多数の皆さんは私をシータと呼ぶ」が日本語訳として妥当と判断する。






……とまあこんな具合。
非常に優秀なヤツなら以上のような構文解析を自力で行い正解にたどり着くことができる、かもしれないね。

ちなみにこれ、ラピュタのとあるシーンのセリフであり、「私の名はシータ」というあれだ。

これを辞書を引きながら翻訳していると20分以上かかるだろう。
辞書をまるごと暗記しているとしても、上記アルゴリズムにしたがって脳内で翻訳したとしたら1分くらいかかるだろう。

これは正しいのか?

受験英語のとおりの教え方にしたがえば、極めて正しい。

しかし人間の脳の自然言語処理はそうはなってはいない。

なぜか?

先に言ったとおり、上記アルゴリズムにしたがっていちいち脳内で翻訳していたら1分かかるのだとしたら、それは会話にならないからだ。

では何が正解か?

「Меня зовут [人名].」で「私の名は[人名]。」。
これが脳内でマクロ登録されていれば人間の脳くらいの処理能力でリアルタイム処理できる。

人間の脳はリアルタイム処理で構文解析などしない。
顕在意識というメインタスクから脳内マクロをサブルーチンコールするだけで人間は自然言語処理をしているのだ。



世の中にはおかしなことを言うヤツもいるものだ。
英語の教員の中には「英語は単語の暗記が命」みたいなことを言うやつがいる。
だからヒンズーの修行僧のように単語の暗記という苦行を積みなさいと語る。

これまたおかしな話で、会話くらいシビアなリアルタイム処理は必要としないが、辞書の持ち込みは不可な、リーディングの能力だけを試されるペーパーテストの点数を上げるだけの目的のときのみ、「英語は単語の暗記が命」で正しい。

そしてだいたいそんなことを言う英語の教員に限ってガチの外国人に英語で話しかけても通じない。
なぜなら、リーディングの能力に特化した訓練しかしていないからだ。

わたしだって英語は受験英語にしか使う気がなかったのでリーディングの能力に特化した訓練しかしていない。
結果としてTOEICのヒヤリングの部は全く聞き取れないが、大学院入試のペーパーテストまでは何とかしのいだので、案外最小の努力で目的をギリギリ達成しているとも言えなくもない。
まあそれはいいとして。



実はこれ、自然言語処理だけでなくて熟練を要するたいがいのものに当てはまる。

例えば将棋。
駒を見て「金は前後左右と斜め前に動けるから……」と構文解析しているとマトモに指せない。
盤面を見ると駒が勝手に動くくらいでないと人様に勝つことはできない。
これも脳内マクロをサブルーチンコールさせてタスクを実行ようにしておいて、顕在意識というメインタスクはなるべく処理しないようにできているわけだ。

だから人は将棋が強くなる。
そしてこれは、実生活に何の役にもたたない将棋マクロの生成に精を出しているだけのことであり、将棋をやれば頭が良くなるわけでも何でもない。



人間の脳はよくできている。
はじめて行う処理、またはめったに行わない処理は、顕在意識というメインタスクが1命令づつ翻訳しながら実行するというインタプリタ動作になっている。
ところが特定の処理を何度も反復実行していると、人間の脳は負荷を軽くするために勝手に脳内マクロを作りはじめる。
いったん脳内マクロができてしまえば顕在意識というメインタスクにはほとんど負荷をかけずに超高速に実行することができるようになる。
それも顕在意識というメインタスクからインタプリタ動作で実行している(慣れてない)人間から見ると、それこそ人間技とは思えないほど超高速にだ。

だが。
自分で自分を書き換えるというこの仕様でコンピュータを作るのはとても難しい。(※1)
なぜ難しいかというと、自分で自分を書き換えるようなものを作ってしまうとデバッグがとてつもなく難解になるからである。
多少は自分で自分をデバッグできるようになっている人間の脳に対し、現在の人類の作れるコンピュータはまだ追いついていない。
人間の脳が最もよくできている部分は、ひょっとしたらこの部分かもしれない。



たぶん努力は才能に勝るというのは、たぶんこの自己生成したマクロの処理能力の高さのことだ。
脳というCPUに個体差があって処理能力が倍くらい違ったところで、
顕在意識というメインタスクでインタプリタ動作しているヤツより、
脳内マクロをサブルーチンコールさせてタスクを実行できるヤツのほうが、
遥かに優秀なのは間違いないからだ。

ただし。
努力で挽回できるのはせいぜいこの程度まで。
それを宗教的に盲信しないほうがいいのは間違いない。






【※1 自分で自分を書き換えるコンピュータ】

これは実在する。
メモリ容量のとっても少なかった最初期のコンピュータではそうやってコードサイズを縮めることをしたケースがあったらしい。
プログラマがどの命令をどのアドレスに配置したかを知っている必要があるため、もちろんアセンブラで書くことになり、とっても生産性が悪い。
なお「A・Iが止まらない!」なるマンガのヒロインたちは自分で自分を書き換えるコードで書かれているという設定になっている。

Samsung 11nm FinFET ってどうよ?

2017-09-13 23:16:32 | 科学
https://ggeek.me/archives/post-18835

> Samsungは新しい半導体製造プロセス「11nm FinFET(11LPP、Low Power Plus)」を発表しました。
>
> 以前から製造している「14nm FinFET(14LPP)」と比較し、最大で15%の性能向上及びチップ面積を最大10%削減することに成功。現在フラッグシップモデルスマートフォンのモバイルプロセッサーは「10nm FinFET」の製造プロセスに対し、「11nm FinFET(11LPP、Low Power Plus)」はミドルレンジ~ミドルハイレンジ向けのスマートフォンに対して用いられます。このプロセス技術は2018年上半期にも生産準備が整うとしています。






こんだけしか良くなんねぇのかよ。

14nm→11nmだと、単純計算で38%のチップ面積削減であって、最大でも10%削減なんてのは計算が合わない。
もしそんだけ削減できれば配線の遅延にもかなり効くはずなので、性能向上が最大でも15%なんてことは考えにくい。

これ、トランジスタサイズだけ小さくしていて配線は14nmと同じなんじゃねえの?

たったこれだけのためにプロセスを乗り換えるヤツがいったいどんだけいるんだろうね。

もし仮に購入検討しているデバイスのチップが現行14nmだったとしたら、それを11nmが出るまで待つという選択肢はあんまり考えなくてよさそうだ。

エンジニア転職フェア:出張報告

2017-07-15 23:25:57 | 科学
エンジニア転職フェアなるものに行ってきた。
今すぐ転職したいというほどではないが、まあいろいろあってだな。

総括としては、状況の把握のためにはまあ行っても無駄ではなかったんじゃないかというところ。

で、どうだったかというのを書いていきたい。




わたしにいちばん近いカテゴリは「回路・組込」だった。
だがこの2つでは組込のウエイトが高い。
つまり回路のお呼びが少ない。

そして回路のお呼びがある中では派遣のウエイトが高い。

回路のお呼びがある中で派遣でない企業の場合、呼び込みでは「ぜひお話を!」と来るのだが、実際に話を聞いてみると「おまえら回路のヤツいらねえだろ?」というところがかなり多い。
そういう場合には呼び込みで声かけてこないでほしいと思う。

派遣でない企業でなおかつガチで回路のお呼びがある企業の場合、というのも少ないが存在する。
これは大手が多い。
そして大手では英語の要望もある。技術力を差し置いても英語というほど必須ではないようだが。
ただ、名物社長のいる連続買収魔の某メーカーの場合が特にそうだったが、買収した海外のチームとうまくやれる人材ということで英語に強い要求があるところもあるようで。

派遣でない企業でなおかつガチで回路のお呼びがある大手企業の場合、転職では一般には年齢制限があるものだが、スキル重視なので年齢はそんなに関係ないらしい。「そんなに」というのがどれくらいかよくわからんが。なお営業の中途は年齢あるみたい。
募集要項は「事業部で〇〇という特定のスキルの人を1名募集」みたいな形になるようで、基本的にそのときしだいの模様。
常にウォッチしていると希望職種の募集に巡り合えるのかもね。



某日本を代表する重電メーカー(東芝でないほう)の場合、出展企業一覧には
> 【募集職種】
> 鉄道車両向け制御装置の設計・開発(制御設計・ソフトウエア開発・回路設計)
> 研究開発
> システムエンジニア、システムコンサルタント
と書かれているのだが、話をしてみると全く違うことが判明。
「設計や開発の部隊もいるが、鉄道車両を作るにあたって顧客ごとにいちいちカスタム対応していると儲けが出ないので、他の顧客と共通化できるところだけ要求を呑んで個別対応は突っぱねたうえで受注を取れる人が欲しい」
という書いてあることと言ってることがまるで違ううえにワガママすぎる条件を提示しやがった。
はっきりいって心象が悪い。

某日本を代表する半導体メーカー(東芝でないほう)の場合、半導体のエンジニアはほとんど募集していないとか。
うちの半導体を使うとこういうことができるんですよ的なことができる人材が欲しいらしく、むしろ顧客だった側の企業から来てほしいみたい。
ここも出展企業一覧には
> 【募集職種】
> デジタル半導体開発エンジニア
> アナログ半導体開発エンジニア
> 半導体プロセスエンジニア
と書いてあって「言ってること違げえwww」というところ。

本当にあった日本の技術力の空洞化

2017-01-18 22:27:16 | 科学
「製造業の空洞化がおきている」。
これは80年代から言われており、いまさらあえて言うようなことではない。
もはやこれは日本ではなく中国で発生している問題でしかない。

ただ昨今では、ビミョーにニュアンスが違う似たようなことが言われている。
「製造業の空洞化により製造ラインが日本国内からなくなることにより、モノ作りの現場の技術力が低下している」
という説だ。

これはどうなのか?

わたしは9割がた無関係なことだと思っていた。

なぜか?

科学が進歩すれば、どんどんオートメーションで製造できる範囲が広がるし、それによって工場からライン工が減るのは当然だ。
家内制手工業においてのモノ作りの現場のノウハウは忘れ去られても問題ないケースはどんどん増えている。

たとえば、真空管を製造する際のグリッドを巻き付ける自動巻線機の使いかたのノウハウなど、いまや日本では誰も必要としていない。
SAWフィルタが実用化されたいま、体積100倍でしかも調整を必要とするヘリカルフィルタの需要は30年前の1/1000にも満たないだろうし、その調整ノウハウがどれだけ役に立つかという話になってくる。
つまりそういうことだ。

製造業の空洞化と、技術力の低下は、たいがいは無関係である。
いやむしろ、ライン工がほとんどいなくなり、ライン工の人件費のほとんど発生しない、完全自動化工場が日本に帰ってくるときがきつつあるのだ。

…そう思っていた。

しかし!
大変残念ながらそうではなかったのだ!!



うちの会社にLSIの設計部隊がいる。
だがうちのうちの会社でLSIを製造しているわけではないので、バックエンド設計は他の得意な会社にアウトソースしている。

このバックエンド設計を投げた会社は、かつては自前で半導体を製造していたというどころか、トップグループにいたところ同士が合併してできたシステムLSI専業メーカーで、それだけ見ればドリームチームと言いたいようなところである。
だが今は自前で半導体を製造してはいない。
ルネサスではない。これだけ言ってしまうとわかる人にはわかってしまうと思うけど。

かつて10年前のまだ半導体工場を自前で持っていたころ、バックエンド設計を投げた向こうの担当者と話をすると、
「こんなレイアウトで〇〇まで性能出るわけねえだろ! せいぜい〇〇がいいところだ! こうやんだよ、よく見てろ!」
なんて、めっちゃふてぶてしいが腕利きの玄人衆がいて、めっちゃ頼りにしていたようだ。

しかしだな。
今は違うらしいのだ。

同様に担当者にいま話をしにいくと、
「それ、レイアウトしにくいからしたくないんですが…」
としか言わないらしい。
ここのレイアウトを変更するとどういうふうに性能が変わるから絶対ダメだと言っても、それを理解する知識がない。
どうやら高卒採用でツールの使い方だけ叩きこまれて仕事しているだけの派遣らしく、こちらの言ったことをそのまま言ったとおりに実行させる以外にLSI設計を任せられる状況ではないらしい。
もう次は頼むのをやめようかと言っている。

これがトップグループにいたところ同士が合併してできたシステムLSI専業メーカーのドリームチームの末路だよ!?



そしてうちの会社でもこれは同じことがおきていた。

わたしはときどきプリント基板を設計していて、うちの会社はバックエンド設計を専門部隊に任せている。
そしてそこには、むかしは
「この部品配置はうちの会社の設計ルールに違反するけど、うちのあのマウンタなら実装できるから問題ない」
と製造装置の性能まで見切ってやってくれる超有能なヤツとか、
「ここは高周波のパターンですから、こっちのパターンは避けておきました」
とエンジニアのミスを勝手に修正してくれる超有能なヤツとか、
「回路図を見たらこの部分が心配なんですが、本当にこれでいいんですか?」
と我々研究開発チームのやってることにまで踏み込んでくる超有能なヤツとかいたものだ。

だが、もうそんなヤツはほとんどいない。
高卒採用でツールの使い方だけ叩きこまれて仕事しているだけの派遣だ。
「うちの課のルールですから」
としか言わない。
なるべく自分たちの裁量が発生しないように、なるべく自分たちに責任がかぶらないように、なるべく言われたとおりにしか仕事をしないようにしている。
残念ながら外注のほうが頼りになるのだが、さらに残念ながら社内事情でそうもいかないという。
いまではこの部署に良い印象を持っているエンジニアを社内で見たことがないほどにまでなっている。

なぜこうなったのかという分析は難しいが、何度か来た不況のたびに非線形に状況が変化したことだけは間違いない。



かつて高い人件費で雇っていた超有能なヤツらは今どこに勤めているのだろう。
なぜいま日本のメーカーは新興国に押されているのだろうね…。

人工知能(AI)なんてダサい

2016-12-18 16:54:34 | 科学
ユーキャンの今年の流行語の候補に「AI」が入っていたっぽい。
もちろん人工知能のことである。

けどね。
いまさらAIなんてダサくないですかい?



そもそもAIなんて言葉は1960年代にはすでにあった。たぶん。

1980年代になると、
「〇〇のとき△△する。〇〇でないとき□□する」
といった手続き型でAIを作るのがはやったことがある。
それをエキスパートシステムと当時言っていた。

たとえば、飯を炊くのに、窯をどういうタイミングでどれだけ加熱すればうまい飯になるかを知っているエキスパートと同じレシピになるよう、内蔵タイマーと温度センサを使ってマイコンでマネして炊飯する装置ができた。
それをマイコンジャーといい、たしか1980年代末くらいに爆発的に普及した。
マイコンジャーはエキスパートシステムであり、したがってマイコンジャーはAIであり、なんとすでに各家庭の台所に1台はAIが入っているのである。

だがもはやこれはあたりまえすぎて死語。
いまさらエキスパートシステムなどと言う場合は、一見するとディープラーニング(後述)のように見えるけどディープラーニングではなく中身はエキスパートシステムだということを強調する場合にしか使われない。



そのあと人間の脳細胞をマネた方式のAIが登場した。
これをニューラルネットワークという。

あらかじめエキスパートがあらゆる規則を記述しないと使い物にならないエキスパートシステムとは違い、人間が学習するように勝手に学習させることができたり何なりという点で注目をあびた。

だが思ったより大したことができなかったため死語と化した。



さいきんディープラーニングというものが登場した。
日本語で深層学習ということもある。

中身が4段以上あるニューラルネットワークをディープラーニングという。
なぜ4段かというと、逆誤差伝播法という、かつてはやった調整方法を使うと現実的な時間内には収束しないほど段数がディープな(深い)ネットワークだという意味である。
このディープなニューラルネットワークを使いこなせる方法が確立したことで、とつぜんディープラーニングが注目を浴びるようになったということだ。



本屋にいってみるといい。
タイトルに人工知能やAIと銘打ってある本のほとんどは、だれでも読める的な超入門書か、数学が大嫌いな文科系ビジネスパーソン向けかのどちらかである。
よしじゃあワシも作ってみようかいな…というレベルのガチ勢予備軍が読むような本のほとんどは、タイトルにディープラーニングや深層学習と書いてあり、中身は行列など数式が満載である。

人工知能(AI)というと、すでにレガシーな感じがして何となくダサいと思わないだろうか?
ようはOVA全盛期(80年代後半~90年代前半)ごろのSFによくあった、意識にめざめた人工知能が暴走して人間と核戦争するみたいな創作が一世を風靡した、そんな古き良き時代のイメージが強いからだ。

じっさい、ガチ勢はAIとは言わずディープラーニングと言っている。
あえてAIという場合はディープラーニングといっても伝わらない一般人に対して説明する場合だけだ。



さあ、あなたも意識高い系またはガチ勢予備軍と思われたいなら、明日からAIとは言わずディープラーニングと言おう。
ただ、ホンモノのガチ勢が寄ってきて濃ゆい話をふってきてボロが出るかもしれんけどね(笑)。

GeForce GTX 1050 (ELSA) CUDAベンチマーク

2016-12-03 01:21:28 | 科学

ELSA GeForce GTX 1050 2GB S.A.C
http://www.elsa-jp.co.jp/products/products-top/graphicsboard/geforce/midrange/geforce_gtx1050_2gb_sac/



ようやくグラボを増設した。

我輩、いまのPCを買った当時、
「GPU内蔵CPU(Ivy bridge)が22nnのFinFETなのに、わざわざ別料金払って40nmのプレーナプロセスのGPUを買うなんて、それなんか無駄な気がしね…?」
と言った。

つまりは
「2XnmのFinFETで作ったGPUのエントリーモデルが出ればすぐ買ってもいい」
とも言っていると読み替えてくれてもいい。

だが、それは出なかった。
当時PCのオプションはGeForce 650、40nmのプレーナプロセスのGPUだった。
次の世代は28nmにシュリンクしたが、プレーナプロセスのままだった。
その次の世代はアーキテクチャこそ異なるものの、同じく28nmのプレーナプロセスのGPUだった。
その次でようやく20nmか22nmでついにFinFETが出るかと思われたが、nVidiaはそのプロセスをスキップした(アップルがTSMCの生産キャパを買い占めたからというウワサもあるが真相不明)。

我が国のプロセスは富士通が京コンピュータのCPUのためだけに用意した45nm(外販できるレベルにプロセスが仕上がらなかったというウワサもあるが真相不明)が最後であり、
もはや外国の誰かさんが勝手にがんばって立ち上げたプロセスが使われるまで指をくわえて見ているしかなかった。

我輩は待った。
その次の14nm世代でようやくFinFETのGPUになった。
だがハイエンドモデルからの投入だった。

まあ当然だ。
もう少し、もう少しだけ待てば、エントリーモデルが出る。

そして、ついに、ファン1個のショートサイズ、別電源ケーブル不要のGeForce 1050が登場した。

本当は性能半分で1万2000円くらいのものでよいのである。
だが、GeForce 1040なるものはたぶん出ないであろうと考えた。
今後当面FinFET最安モデルになると思われるGeForce 1050を選択したのであった。

あとで聞いたのだが、グラボに詳しいヤツも
「1万くらいまで安いヤツにするとホントに安いだけになるし、1万円台半ばから2万くらいまでのがいちばんコストパフォーマンスいいよ」
と言っていた。






でだ。
GeForce 1050といっても各社ある。
日本で入手困難なものも含めると9社くらいだろうか。
ではどれを選べばよい?

まずメモリ。
ノーマルの2GBと4GBのTiなるモデルがある。
GBあたりの値段の差からいうと、DIMM換算で4倍違う。
GDDR5だからといって4倍出せるかというと…というのでやめた。

クロック。
もっと安くて低性能でいいくらいなので、安定して動くオーバークロックではないモデルであること。

寸法。
ショートサイズであること必須。

で、ここまででもまだ6銘柄くらいのこる。

で、我輩が注目したのはヒートシンク。

グラボの前面パネルは2スロット占有する。
だが1スロット分は単に換気の穴が開いているだけのものがほとんどである。
だからといって意味がないわけではなく、それで冷えてもらうのだ。

だが。
ほとんどのグラボのヒートシンクのカバーは前面パネルまで伸びておらず、途中で止まってしまっている。
「これグラボ単体で熱設計したら冷えるかもしれんけどケースに入れたら冷えないだろwww」
と思った。
この条件を満たすグラボはELSAともう1種類だけだった。
けっきょくELSAにした。



届いたのでさっそくヒートシンクを確認。

これはすごくよくできている!!!

ヒートシンクは横についているフィンにも熱を逃がさないといけないので、横方向にも熱伝導性が必要なのだが、それを重視しすぎるとフィンが短くなるというトレードオフがある。
このELSAのグラボは、中央だけ分厚くて脇にいけば薄くなるという、熱設計がちゃんとわかってるヤツでないとやらないような構造になっている。

これはすばらしい。
こいつはとりあえず動けばいい的なノータリンの設計したグラボでは断じてない。
若干高めなのだがその価値はある。

と、こんな話を先のグラボに詳しいヤツにしたのだが、
「そんなところまで見るのはおまえだけだwww」
と言われた。

そりゃまあ我輩は会社で熱流体解析してるくらいだしな(笑)。

ただ、デメリットもあった。
このELSAのグラボは与えられた寸法をギリギリまで活用しているため、特定のPCの特定のスロットにはマザボの部品が邪魔でちゃんと刺さらないという設計になっていた。
機械的寸法にも相性問題があったとは…。



ちなみに裏面はこんな感じ。

大容量のチップコンデンサを実装できるようになっているパッドだけ存在する箇所がいくつもある。

これは、あとでコンデンサを追加しないと動かなかった場合のリスク回避としてボードの設計段階で用意したものであり、製品ではコストダウンのためマトモに動くギリギリまでコンデンサを削除して出荷している残骸である。

つまり、安定動作に問題がある場合、ここに自力でコンデンサを追加してやれば安定性が向上するかもしれん、ということだ。
ふつうCPUをオーバークロックで使っている人でもボードにハンダづけしてまで改造しようというヤツはほとんどいないけどな。

あと、DC/DCコンバータのインダクタも磁気シールドタイプを使っているように見える。
こいつは空気中にノイズをまき散らしにくい反面、少し値段が高い。
そういう意味でもELSA製は若干高いだけのことはある。






さてベンチマーク。

世間でのグラボのベンチマークの方法はすでに確立しており、
そのツールをダウンロードして実行しておしまいなのがふつうである。

だがそれでは中身がよくわからない。
ツールを作ったヤツの思惑に大幅に左右されうる。
だいたい何をやっているのかすらよくわからんベンチマークツールすらある。
たとえばfloatだけベンチマークしてdoubleでは遅いのは性能バラさずにスルーしてすます、なんてのは恐らく誰でもやる。

そこでだ。
我輩が自らCUDAでベンチマークをとるコードを書けばいいじゃないかということになった。
じつは我輩ちょっとだけCUDA使えるという理由からRadeonはもとより眼中になかったという逆の理由もそこにはある。

ベンチマークの方法は以下のとおり。
シングルスレッドのCPU(Xeon E31275 3.4GHz 会社で使用しているPCで自宅用ではない)で行列演算を行った時間をリファレンスとし、GPGPU用プログラミング言語CUDAでフルスクラッチで自作した関数の実行時間と、NVIDIA提供のcuBLASライブラリによる実行時間の双方で比較した。
演算サイズは4~5種類。
GPUはdoubleの演算は遅いため、floatとdoubleの双方を比較した。



作った。

実行した。

おどろいた!!!

我輩がPCを買った当時のグラボと比べて1桁速い。
だいたい「桁違いに~」と形容詞がついてもだいたい2~3倍にしかなっとらんこともしばしばだが、こいつは真の意味において桁違いに速い。

それに前の世代と比較してすら倍速い。
恐らく900番台の2ランク上のグレードと同等だろう。

いまのCPUがIvy bridgeから1桁速くなっているとはとても考えにくいので、グラボの進化はかなり急激である。
まあ、GPU単体が速いのではなく、GDDR5が速いのもあるけれど。



以下、細かい違い。

GPGPUで演算を行うとピーク性能で数千倍の高速化が得られるが、使いかた次第で効果が得られない場合がある。
演算量が非常に大きく、floatの場合、効果が得られやすい。

Quadro 600の次の世代のQuadro K600では演算性能の差があまり見られない。プロセスが微細化しているのに電力も性能も据え置きとはガッカリという感がある。
Kepler世代はピーク性能重視の改良とどこかに書いてあったような気がするのだが、それに関係あるのかもしれない。

さらに次の世代のQuadro K620では数倍の高速化が得られる。
最新世代のGeforce 1050ではQuadro K620よりさらに倍速い。
ただしcuBLAS floatでは倍は速くなっていない。
これはGPUコアよりメモリがGDDR3からGDDR5になってメモリバンド幅が上がったことによる性能改善の度合いのほうが大きいことによるものだと推測される。
たしかMaxwell世代は実行性能重視の改良と書いてあったのを見たような気がする。

NVIDIA提供のcuBLASライブラリを使うとfloatなら自作関数より10倍高速化するが、doubleだと効果が小さくなり、Quadro K620やGeforce 1050のdoubleではほとんど変わらなくなる。
これは、floatではDRAMとの通信が支配的であり、そこがCUDAのコーディングノウハウとなるのだが、doubleでは演算ユニットのほうが支配的になるため、演算の順番を入れ替えても速くなりようがないからではなかろうかと推測される。
また世代が新しくなるごとにfp64のALUの比率が減っているのが気になる。






まとめ。

GeForce 1050はすばらしく速いので買って損はしない。
銘柄はヒートシンクのよくできているELSAがオススメ。

艦これ提督にそれがいるんかという話はあるけれど(笑)。

CUDAで遊んでみた

2016-06-04 01:15:41 | 科学
我が家の家庭用PCにはグラボは刺さってない。
インテルのCPU内蔵のヤツで済ませてあり、前からTSMCのFINFETのプロセスで作ったローエンドのGPUが出たら買うと公言しているのだが、いまだ現れずじまいである。

しかし会社のPCには刺さっている。
こいつのCPUはXEONなので外付けのグラボが刺さっているのだが、とりあえず電磁界解析と熱流体解析のお絵かきCADが最低限動けばいいやなので、CAD用ローエンドということでQuadroのローエンドのヤツにしてある。

でだ。
よく考えれば会社のPCではCUDAを動かせるということに今さらながら気がついた。

では!
せっかくだからCUDAで遊んでみようではないか!!

というのが今回やったこと。

会社や部署にもよるだろうが、研究開発職というのは多少フリーダムなところがあり、こうやって遊んでいるようでいてスキルアップも兼ねるようなことを多少やってても問題ないのだった。



まずベンチマークとして行列演算するプログラムをCPUのシングルスレッドで作成。

つぎにCUDAに移植。

すると、なんと・・・!

CPUの2倍遅いものができましたとさ・・・。

なんてこったい!?

・・・ということでしばらくいじって改良を加えた。
いろいろやってみたところ、CPUの10数倍の速度というところまで改良できた。

まあこれなら悪くないのかも。
わりと良いCPUのシングルスレッドに対してローエンドのGPUならこんなもん?

・・・と思っていたのだが。

同じ動作をするNVIDIA作成のライブラリがあるので、それを直接叩いてみた。

するとだな。
なんとCPUの100倍の高速化を実現。

速い!!!!!!

ホントにこれ計算できてるんだろか?と疑問に思い、CPUの演算結果と比較するプログラムを作ったのだが、たしかに計算できている。
(floatだと積和演算器のせいか誤差が見えたがdoubleでは問題ない範囲。100倍速はfloatのほう)

グラボ恐るべし・・・。

グラボを選ぶときは、クロックの周波数とCUDAコアの数を見ればだいたい見比べられると思っていたのだが、それは達人が作ったサブルーチンを使ったときだけだった。
とりあえずルールはわかったという程度の我輩のようなシロウトがGPUを叩く場合、CUDAコアの数ではなくメモリのバンド幅のほうが支配的になるらしい、ということがよくわかった。



だが。
話しはこれでは終わらない。

このベンチマークで驚くほど違いが出たというのをグラボに詳しいAさんとBさんに話してみた。

Aさんはふつうの事務職だが、家でFPSなどを堪能されており、サーバーまでのレイテンシがどうのというほどのガチゲーマー。
Bさんは我輩と同じく研究開発職でプログラミングも多少こなし、家では動画加工でマシンの性能を使い倒している歩くベンチマーカー。

グラボに詳しいこと以外まったく共通点のない2名である。

だが、実は全く同じ反応が返ってきてちょっと驚いた。

「ほら、そうでしょ? グラボってすごいんだよ! うちではさ・・・」
と、2名とも自分の世界に共感してくれたことを誇らしく感じ、自らの経験譚を雄弁に語ってくれる反面、

「俺は使うだけで自分が直接叩いたことはないんだけどさ・・・」
と、2名とも自分で叩けるヤツに対して若干引け目を感じている模様。

いや、我輩だって全くの無知なドシロウトからちょっとだけ使えるシロウトにレベルアップしたにすぎないので、人様に引け目を感じていただけるほどスキルは無いのだが。
ドラクエでいうとメラが撃てるようになった程度だぜ(笑)。



よく考えればまあ、ヘッタクソなシロウト工作でもいいから自分で試しに作ってみたヤツに対し、ユーザーとしてそれをどう使うかのほうにいるヤツらが若干引け目を感じるというのは、他の世界でもときどき見られる現象である。

アマチュア無線しかり、オーディオしかり、マンガしかり、ゲームしかり、小説しかり、投稿動画しかり。

シャドー間接部門を作ろう

2015-07-01 01:04:48 | 科学
攻めのIT投資とともにシャドーITが増加--ガートナー調査
http://japan.zdnet.com/article/35061203/



最近ちらほらこんなニュースを見るようになった。

シャドーITとは、先のリンク先にあるように

> 情報システム部門が把握しないまま現場で利用されている情報システム

である。
なぜこうなったかというと、どうやら

> IT部門がビジネスのニーズに対応しきれず、ビジネス部門が独自にIT投資を行うケースが増加しつつある状況

らしい。
このへんの事情は木村岳史の極言暴論シリーズにときどき出てくるので参照いただきたいところだが、



木村岳史の極言暴論! - グローバル化でも崖っぷち、IT部門に“下克上”の危機:ITpro
http://itpro.nikkeibp.co.jp/atcl/column/14/463805/112000016/



かいつまんでいうと、SIerに要件定義から保守から丸投げするようになったことで社内のIT部門は自分では何もできなくなってしまい、単なる発注代行業務部門になり下がったため、ということのようだ。

これがホントかどうかはわからない。
世間一般論はともかくとしても、うちの会社のIT部門が頼りになるのかすらわたしにはよくわかっていない。

しかし!

実はいま、非常によく似た境遇にわたしは遭遇している。
それを順番に説明したい。






ある程度以上の規模がある世間一般の会社と同様に、うちの会社でも業務は細切れになって各部門ごとに切って分けて投げるようになっている。

これはたとえばプリント基板の設計においても同じである。

プリント基板をおこすときは、大まかにいってうちでは
 ・発案者(ほとんどは研究開発部門)
 ・部品などの審査係(購買部門や品質保証部門など)
 ・ライブラリ作成およびバックエンド設計担当部門
 ・発注するための購買部門
がかかわり、それぞれ担当するところだけをこなすようにできている。

このシステムは悪くない。
お互いの得意分野だけに集中してやるので業務効率は良いだろう。

たとえば新規におこす基板に新規の部品を使いたい場合、
そのライブラリを作っておいてくれと担当部署に丸投げしておいて自分はその間に回路図設計をしておけば、
理論上は倍速で仕事が進むわけだ。

しかし!

最近は業務効率という面で若干ビミョーになりつつある。

なぜか?

最近お役所仕事しかしなくなった部署があるからだ。

たとえば新規におこす基板に新規の部品を使いたい場合、
ライブラリを作っておいてもらいたいとすれば、そのライブラリを作るための仕様書群(複数)を完備しなければならず、またその仕様書は複数の解釈の余地のないカンペキなものでなくてはならない。
それだけ仕様書を書くのだったら自分でライブラリを作ったほうがてっとり早いのだが、ライブラリ作成のための権限を配布された人間が社内に限られており、自分でやるから権限をよこせと言っても断られる。
ライブラリ製作者側はというと、受け取った仕様書(たとえばフォーマットはエクセル)をマクロにかけてライブラリを自動生成し、社内システムにアップする作業だけを行う。
これでは理論上は仕事は1倍速にしかならない。

ライブラリ製作部門はというと、業務効率を改善しただとかのたまって派遣社員の首をはねて人件費削減に貢献したなどと言うわけだが、
なんのことはないエンジニアに投げ返しただけで全体としては業務効率は改善していない。
むしろ給料の高いエンジニアの業務が増えた分だけ業務効率が悪化しているのではないかとすら思うほどだ。

なんでこんなに役所仕事なんだwww?

・・・と誰しも思うところだが。

たぶんトラブったときの責任をぜんぶ外に出すことで自分たちがとる責任を可能な限り小さくしたかったのではないかと思われる。
だってルーチンワークしかしなかったらトラブルの発生確率は大幅に下がるからね。

でもこいつらはほっとくしかあるまい。
他部署にある社内権力をつぶしにかかってまで何とかしようというのはうっとうしいのでまずやらない。
これは日本人の悪い癖だ。

ここまできて、じゃあこれどうすんだよ、と誰しも思う。

そこでだ!

いま我輩は、他のほとんどの関連部隊をスルーして研究開発部門だけで基板をおこすフローを立ち上げようとしている。

本日気がついたのだが、これはいわゆる世間でいうところのシャドーITのコンセプトそのものだ。






シャドーITというのはIT部門本体には嫌われる傾向が強い。
セキュリティー対策や社内ルール準拠のチェックができないし、
自分たちの用意したツールと異なるものを使うもんだからライセンスやらリソースやらがダブって一見ムダに見えるし、
自分たちに隠れて自分たちの代わりの業務をコソコソやっているのが何より気に入らないだろう。

いま我輩がやろうとしていることも多分そうなる。

しかしそんなのは知らん。
これは日本人の悪い癖だが、他部署にある社内権力と正面衝突して何とかしようというのはうっとうしいのでシャドーに徹することにするつもりだ。

脳の記憶構造について推察

2015-05-07 21:28:55 | 科学
とあるアニメを見ていたときのことだ。
その作品では、人間はデジタルデータとして存在することが可能であり、かつ生身の人体へも人間を転送することが可能、という設定だった。

さてここで根本的な疑問が出た。

デジタルデータの領域と生身の人体の領域を行き来するためには、人間の脳の記憶構造についての理解が不可欠であり、それを模擬したものをデジタルの領域でエミュレートできる必要がある。
ではその人間の脳の記憶構造とはいったいどういうものか?
・・・というものだ。

しばらく考えてみた結果、次のようなものではないかとわたしは推察するに至った。
なお以下に記すことは、以下に記してある以上には特に根拠はない。



PC上のデジタルデータとは、(最も低い階層では)常に番地で管理される。
デジタルデータを検索する場合には、(最も低い階層では)常に番地で検索し、いちばんシンプルな方法でいえば、番地のいちばん小さいところからいちばん大きいところへ1つづつ順番に検索していく。

この方法は、記憶領域そのものに検索能力がなく、検索機能を持つプロセッサの個体の処理能力が高く、かつプロセッサの並列個数が少ない場合に効果を発揮する。
たとえば今の人類の手にするPCはそうなっている。

では脳はどうか?

たぶんそうはなってはいない。

脳の構造とは、単体の記憶情報と、それに関連する情報への接続、くわえて重みづけでできているのではないかと考える。
PCでいうと、単体の記憶情報と、それとセットで関連する情報へのポインタ(=ある情報が収納されている番地の情報を意味するプログラミング言語用語)とそれの重みづけ変数をペアにした構造体を複数個(しかも可変長)、で持っているのではないかという感じだ。

これをもとに脳の記憶へのアクセス方法を推定したものを説明したい。



たとえば「おっぱい」で検索してみる。

まずCPUでいう命令フェッチユニットに相当するものが走る。
そこで「おっぱい」という文字または音声から「おっぱい」という意味だと解釈するという自然言語解析が行われる。

その「おっぱい」情報素子には「巨乳」イメージの情報素子と「貧乳」イメージの情報素子へのポインタが収納されている。

ではそこから「巨乳」と「貧乳」のどちらを優先的に検索するか?

それはポインタの重みづけ変数の値が大きいほうを優先する。

ではその変数の値は何で決まるか?

たとえば、アクセスしたたびに値をインクリメントし、時間の経過でデクリメントする。
デクリメントしきってカウンタが0になるとその情報へのアクセス経路を失う、つまりこの経路からでは思いだせなくなる。

これはわたしがちっぱい星人で貧乳のほうに関心があるので、「おっぱい」→「貧乳」へのアクセス頻度が圧倒的に高い。
したがって貧乳ポインタの重みづけ変数はインクリメントされまくっている。
わたしの場合は貧乳ポインタの重みづけ変数のほうが値が大きいので、そちらを優先的に検索する。

「貧乳」イメージの情報素子には「貧乳」という文字へのポインタのほか、「青いロングの髪のアイドル」イメージや「黒髪ツインテールの弓道着の女の子」イメージへのポインタなどが保存されている。

「青いロングの髪のアイドル」イメージの情報素子には「アイドルマスター」「如月千早」という文字へのポインタが保存されており、
「黒髪ツインテールの弓道着の女の子」イメージの情報素子には「艦これ」「瑞鶴」という文字へのポインタが保存されている。

だからわたしの脳へ
「『おっぱい』と言われて思いついたことを何か言え」
と命令を発行すると、
「おっぱい」イメージ→「貧乳」イメージ→「青いロングの髪のアイドル」イメージ→「如月千早」文字へと検索が進み、
「千早のちっぱいはすばらしい」
と答えるように動作する。

「貧乳」イメージの情報素子には「赤髪ロングでちょいSな死神娘」イメージへのポインタも収納されており、それも検索にひっかかる。
しかしその先にあるはずの作品名「だから僕は、Hができない。」とキャラクター名「リサラ」はなかなか出てこない。
なぜかというと、リサラのおっぱいが際立ってすばらしかったのは鮮明に覚えているのだが、作品の設定やシナリオが際立ってすばらしかったという印象がないため、思いだす機会も少なく、重みづけ変数はなかなかインクリメントされないため、検索に時間がかかるからだ。

ここまでの仮説がもっともらしいとするならばまあ、デジタルデータの運用でというので考えるとかなりヘンテコリンなデータベースではあるが、そういう実装を作れと言われればすぐ作れそうなものだ。

ではなぜデジタルデータの運用でそういうものが無いのか?

それは、人間の脳には記憶素子そのものに検索機能がついており、検索機能の処理能力は1クロック50msくらい(PCに比べれば8桁くらい)遅いかもしれないが、並列個数がかなり多いため、10~20クロックもあればたいていのことは思いだせるようになっているから…ではないだろうか。
PCで検索すれば速いには速いけど1万クロックくらいいるかもね。

たぶん人間の脳は、ソフトウエアで実装するよりも、脳みそエレメントみたいな単位機能をFPGAみたいにハードウエアで実装して並列処理させたほうが実装に向いているんじゃないかという気がする。



ちょっと別の問題へ。
では記憶は意図的に改ざんしたり忘れさせたりすることは可能なのか?

いちばんカンタンに思いつくのは、該当する記憶素子をつぶしてしまえばいいという解決策になる。
だがPCでいうとポインタに変なものが入っている相当の動作になりそうなわけで、それでマトモに動くかハングアップするかどうかは処理系に依存するかもしれない。

いちばん美しい解決策は、該当する記憶素子へのポインタを全部削除してしまうという解決策になる。
本来忘れるとはこういう挙動を示すのだと思われる。
だが、該当する記憶素子へのポインタを持つ記憶素子がどこにあるのかを検索するすべは無いかもしれない。

しかし、はじめっからデジタル空間でしか存在しない人間なら、それは可能だ。
ポインタを双方向に持つように実装すれば実現できるからだ。

ようするに、脳に実装されている人間は意図的な記憶改ざん耐性が極めて高く、PCに実装されている人間は容易に改ざんできるように実装することも可能、ということか。