カテゴリー
技術

名刺の裏にニューラルネットワークプログラム

Card Network は、名刺の裏に印刷されたコンパクトなニューラルネットワークのソースコードです。

名刺の裏にソースコード、という他の人のアイデアを見たアイルランドの大学で計算機科学を学ぶ修士生の Oisin さんが選んだのは、小さなニューラルネットワークを作る 878文字のC++のコード。

#include <bits/stdc++.h>

typedef float f;typedef std::vector<f> v;f K=0.01,R=0.01;struct L{int w,h,i;v W,x,z;L(int i,int o){W.resize(i*o);for(f&a:W)a=(rand()/(1.1-(1<<31))-0.5)/sqrt(i+o+0.);w=i;h=o;}v F(v X){x=X;v a(h);i=h*w;while(i--)a[i/w]+=W[i]*x[i%w];z=a;for(f&i:a)i=K>i?K:i;return a;}v B(v Y){v (w);i=w*h;while(i--){f Z=Y[i/w]*(z[i/w]>0?1:K);X[i%w]+=Z*W[i];W[i]-=R*Z*x[i%w];}return X;}};int main(){L n[]{L(40,50),L(50,50),L(50,1)};int l,z,k,i=500337;while(i--){z=242-i%243;k=40;v x(k),y;while(k--)x[k]=sin((k%2?z/27/3.:z%27/5.)+6.14*k/20);y=x;for(l=0;l<3;l++)y=n[l].F(y);v Y{2*(y[0]-("\x1e\0(0ドル)\\0(0ドル)\b\x01\0(0ドル)@H\374(3ドル)\377(3ドル)B\x12@\x18\x12G\302(3ドル)\\x10@\x12\372(3ドル)\377(3ドル)\221(2ドル)\x10\0(0ドル)\0(0ドル)\200(2ドル)\0(0ドル)\0(0ドル)\0(0ドル)\\x02"[z/8]>>z%8&1))};while(l--)Y=n[l].B(Y);putchar(" .,-*oO##"[(int)(y[0]*8)%9]);if(i%27<1)puts(i?i%243?"":"\033(0.3ドル)[9A":"\r\   --- Oisin Carroll ---\n\ gh:Oisincar  web:imois.in");}}

ここではCのstructで3層のニューラルネットワークを作り、Oisin という名前の図形を表示できるように学習させています。

エンジニアのスキルアピール、カンファレンスでの話題作り等に、自分の得意分野のコードをミニマムに名刺裏に掲載するアイデア、どうでしょうか。

カテゴリー
技術

DECODELIA – 自分だけパソコンの画面が見えるようにするChrome拡張(要赤メガネ)

Chrome拡張機能DECODELIA は、自分の眼鏡からだけ見えるようにブラウザの画面表示を改造するツールです。

Chromeブラウザ上でこの Decodelia を有効にすると、ページの表示がこんな風になります。

これでブラウザで何を見ているのかわからなくなりますが、赤いセロファンを通してみると

こんな風に、文章が読めるようになります。

読めるように… なってるかな? 頑張れば読めるかもしれないけど、常用するにはちょっとつらいかも。

原理は暗記シートと同じですし、

当然ながら、元々赤色の部分は見えないでしょうね。

偏向グラスを使った方が、色も見えるし快適かもという話もあります。ただその場合は表示側も改造が必要なのかな。

SF小説でも、そんな感じで後ろの人が見てるディスプレイとまったく別の内容を読み書きしてる、なんて描写を見たことがあるので、うまく作れば役に立つ場面もあるのかもと思います。このDECODELIA はコンセプトを伝える程度の実用性でしょうけれど。

via Naked Security

カテゴリー
技術

City Generator – 架空のアメリカの都市の地図や3Dモデルを自動生成

City Generator は、アメリカの大都市の地図を自動生成してくれるwebサービスです。

サイトを開くと勝手に自動生成が始まり、実際にありそうな都市の地図が少しずつできあがっていきます。

デフォルトはGoogleマップ風ですが、右上のメニューから Apple 風や手書き風など、さまざまなスタイルへの変更もできます。

デフォルトの「大公園2個、小公園なし」は少し寂しいと思ったので、公園を多めに作ってみたのが冒頭の地図です。他にもいろいろオプションがあるよう。

stl 形式のモデルをダウンロードすることもでき、これを使って都市を3Dで描くことも(知識と作業が必要そうですが)できるということ。

Typescript で書かれたソースコードはGitHub で公開されていて、自分で試すこともできます。