머신러닝

2-3 Rosenblatt의 퍼셉트론 알고리듬을 Processing으로 코딩하자!-I

coding art 2018. 8. 8. 18:51
728x90

물론 지금까지 다루어 오던 아두이노 엘렉트로닉스류의 코딩이 안드로이드 OS의 지원을 받는 스마트 폰에서 앱 코딩을 지원하는 앱인벤터와 조우하는 경우 아두이노 코딩이 보다 강력한 시너지를 받을 수 있었지만 한편 PCProcessing에서 시리얼/이더넷 인터페이스나 무선 와이파이에 의한 아두이노 인터페이스 코딩이 가능하다면 아두이노 사물인터넷 코딩의 끝판을 볼 수 있을 듯하다.


교보문고에서 판매 중입니다. 342 페이지 가격 15800원 개인출판(POD)이므로 주문 배송기간이 일주일 정도 소요됩니다.


_______________________________________________________________________________________________________



Rosenblatt의 퍼셉트론 알고리듬에서 입력 벡터 코딩에 대해서 알아보자. 20X20 Photocell 센서를 사용하면 WeMos LOLIN 조도센서 실험에서처럼 빛의 입력에 따라 조도센서 소자의 저항 값이 변동되며 흐르는 전류 값도 변동된다. 예를 들면 햇빛이 강렬할 경우 100Ω 아래로 내려가기도 하며 한편 깜깜할 정도로 어두울 경우 40KΩ 까지 저항 값이 커지기도 한다.


다음 사이트로 이동하여 마저 읽으세요.

https://steemit.com/kr/@codingart/2-3-processing-rosenblatt-i


//Simple_perceptron_01

//The activation function
int sign(float n) {
if (n >= 0) {
return 1;
}
else {
return -1;
}
}

class Perceptron {
float[] weights = new float[2];

//Constructor
Perceptron() {
//initiallize the weights randomly
for ( int i = 0; i < weights.length; i++) {
weights[i] = random(-1, 1);
}
}

int guess(float[] inputs) {
float sum = 0;
for ( int i = 0; i < weights.length; i++) {
sum += inputs[i]*weights[i];
}
int output = sign(sum);
return output;
}
}

Perceptron brain;

void setup() {
size(400,400);
brain = new Perceptron();

float[] inputs = {-1, 0.5};
int guess = brain.guess(inputs);
println(guess);
}

void draw() {
}