zPerceptron~zen言語で書かれた簡単パーセプトロン~
こんにちは、かずみん(@warugaki_k_k)です。
最近は、「ゼロから作る DeepLearning Pythonで学ぶディープラーニングの理論と実装」な本を読んでいます。
そこで学んだ、zen言語でandゲートなパーセプトロンを書いてみました。バイアスは使ってません。
実装は10分もかからずに、すみました。本当に簡単なものです。
const std = @import("std"); pub fn main() anyerror!void { std.debug.warn("AND(0, 0) : {} \n", AND(0,0)); std.debug.warn("AND(1, 0) : {} \n", AND(1,0)); std.debug.warn("AND(0, 1) : {} \n", AND(0,1)); std.debug.warn("AND(1, 1) : {} \n", AND(1,1)); } pub fn AND(x1 : f16 , x2 :f16) u8 { const w1 = 0.5; const w2 = 0.5; const theta = 0.7; const tmp = x1*w1 + x2*w2; if (tmp <= theta){ return 0; }else{ return 1; } }
これを実行すると、
$zen build run AND(0, 0) : 0 AND(1, 0) : 0 AND(0, 1) : 0 AND(1, 1) : 1
あってますね。
全然(zenzen)書くことがありません。これで終わりです。
ニューラルネットワークも実装しようと思っていましたが、zen言語の行列の積をする関数とかがないっぽいので無理っぽいです。(あるのかな?よく知らない。
zen言語でディープラーニングとかできたら、かっこいいですね。