coding 201

Rosenblatt Perceptron N = 1 조도센서 예제 Fermi-Diradc 확률분포를 사용하는 Sigmoid 확률분포 계산

#History 물리학에 비해 다소 늦게 시작된 머신 러닝은 통계 물리학에서 다루는 3종류 확률분포 중 2종류에 크게 영향을 받고 있다. 첫 번째가 Softmax로서 Boltzman의 통계 역학 공식을 포장도 전혀 바꾸지 않은 채로 그대로 가져다 쓰고 있으며 MNIST 수기 숫자 인식 문제에서 대단히 뛰어난 인식..

머신러닝 2018.09.06

통계역학의 Fermi-Dirac 확률분포, Fermi level 과 머신 러닝의 Sigmoid 함수에 대하여

자연과 우주를 대상으로 하는 물리학적 직관에 의해서 시작된 Boltzman의 통계역학이 1800년대 후반에 시작되어 그 영향이 1920년대 확률을 바탕으로 하는 양자물리학에 큰 영향을 끼쳤으리라 보이며 아울러 물리학 전반을 확률의 문제로 뒤바꿔 놓은 것이 사실일 것이다. 하지만 그보다 반..

머신러닝 2018.09.06

Logistic regression 에 사용되는 Sigmoid 함수를 사용하게 된 배경을 추적해 보자.

동일(identical)한 하지만 구별(distinguishable) 가능한 입자들의 문제를 다루기 위해 볼츠만으로부터 시작된 통계 물리학은 물리학이라는 경계 내의 볼츠만 분포로 끝나는 것은 아닌 듯하다. 그 이유는 물리학의 범주와 아무런 관계가 없다고 볼 수 있는 머신 러닝 분야가 통계 물리학의 핵심..

머신러닝 2018.09.02

아두이노 오픈소스 밸런싱 로봇의 시스템 구성

아두이노 코딩이 익숙해짐에 따라 재미있는 프로젝트를 진행해보자. RC카와 드론이 있을 수 있는데 드론의 난이도가 훨씬 높은 편이다. RC카도 여러 종류가 있지만 처음 도전 단계에서는 DC 모터와 Adafruit 모터 쉴드를 이용한 RC카가 제격이다. 자체 코딩만으로 알아서 전진 멈춤 좌우회전을 하는 간단한 모델이 있을 수 있고 여기에다 블루투스 보드를 추가하게 되면 앱인벤터 코딩에 의해 스마트폰에서 키를 눌러 무선 조종이 가능해진다. 스마트폰 조종용 코드는 Play 스토어에서 다운받아 사용할 수도 있지만 아무래도 앱인벤터를 직접 배워 스스로 코딩해야 할 것이다. 키보드 터치에 의한 무선 조종도 가능하지만 음성인식에 의한 무선 조종까지도 가능하다. 하지만 DC 모터 RC카 모델은 모터에 감속기를 사용하지 ..

카테고리 없음 2018.08.30

새로운 밸런싱 로봇 모델

동호회에서 제작한 또 다른 밸런싱 로봇 모델을 소개하자. 이 로봇의 구성은 밸런싱 로빗과 거의 비슷하지만 예전 모델을 이용해서 차체를 조립하였으며 부품 배치 방식에 영향을 받아 거의 점퍼선 배선을 사용한 배선 모델로서 외관이 깔끔하여 로빗으로서는 당분간 얼굴 내밀기가 민망한듯하다. 성형 변신을 위한 시간이 필요한듯하다. 밸런싱 로빗 보다 하루 이틀 시간이 더 걸렸는데 동영상에서 볼 수 있듯이 더욱 고급화 시킨 모델이다. 즉 스테퍼 모터에서 약 1.5A 가량의 과다 전류가 흐르는데 Brokking에 의하면 이 전류의 크기를 0.1∼0.15A 수준으로 제한해야 한다는 의견이다. 그 방법은 리튬폴리머 배터리 대신 전자과실험실의 파워서플라이 장비를 사용하여 12V를 공급하는 상태에서 흘러나가는 전류를 측정할 수..

앱인벤터와 아두이노 HC-06 블루투스에 의한 DHT11 온습도 모니터링

구글 플레이 스토어에서 다운 받을 수 있는 블루투스 터미널 앱을 사용하지 말고 자신이 코딩한 앱인벤터로 아두이노 우노에 설치된 DHT11 온습도 센서 데이터를 HC-06 블루투스 센서 보드에 의해서 안드로이드 폰에서 수신해 보자. 필요한 준비물은 아래와 같다. 안드로이드 스마트 폰; HC-06 아두이노 블루투스 센서 보드 X 1 아두이노 우노 보드 X 1; DHT11 온습도 센서X1; 점퍼선 7개 #아두이노 우노 블루투스 배선 HC-06 블루투스 보드의 데이터 선 2개는 TXD 와 RXD 이다. 아두이노 보드의 (0,1)은 코드를 업로딩할 때 사용하기 때문에 점퍼 선을 뺏다 끼웠다 하기가 대단히 불편하므로 SoftwareSerial.h 라이브러리에 의해 (2,3)을 사용하기로 한다. 클라스 선언을 통해 ..

앱 인벤터에 의한 보행계(pedometer)

하나의 예제를 통해 앱인벤터 편집에 능숙해 질 수 있는 추천할만한 과제로서 보행수와 거리를 계산하는 만보계 또는 보행계(Pedometer)를 앱인벤터 Sensors의 하나인 Pedometer를 사용하여 코딩하자. 스마트폰 화면 구성을 다음과 같이 4줄로 간단히 디자인하자. 첫줄에 보폭설정 (Set stride length): 0.4 (m) 둘째줄에 보행계 출발(Start) 정지(Stop) 버튼 세 번째 줄에 보행거리 상황(Walking steps status) 헤딩 타이틀 출력 네번째 줄에 보행거리(Elaspsed distance) 와 보행거리 숫자 디스플레이 각 줄별로 2개 또는 3개 요소가 들어가게 된다. 각 줄들의 크기는 동일하다. 1,2,4번 줄은 Horizontal Layout을 사용한다. 이 ..

오후의 소일거리로 보는 Brokking의 밸런싱 로봇짤

주말 일요일 제작해둔 Broking의 밸런싱 로봇! 아직 블루투스 부분 코딩을 앱인벤터로 해야 하는 막중한 임무가 남아 있는 상태이기는 하지만 경험이 제법 많은 편이라 아예 걱정 같은 것은 안하기로 작심을 했다. Brokking 이란 단어를 여러 번 쓰다 보니 어디선가 많이 들어 본 이름 같았는데 신문을 장식했던 드루킹이었던 것 같다. 한편 Brokking의 댓글에 올라온 제어 방식에 관한 논의가 있었다. Brokking 의 방식이 시간을 제어하는 듀티 파형 크기의 역수를 취하여 비선형 형태의 주파수를 얻어낸 후 선형화 작업을 했는데 선형화 과정 없이 직접 주파수로 제어하는게 어떻겠느냐는 의견이었다. 제어 전문가가 아니라 좀 긴가민가해서 수정한 코드를 테스트해보니 잘 되지 않아 다시 Brokking의 코..

Brokking의 오픈소스를 이용한 밸런싱 로봇

인터넷 소사어티에서 브로킹(Brokking)은 아두이노 YMFC-3D 및 YMFC-AL 드론의 뛰어난 오픈 소스 퀄리티로 명성을 누리고 있다. 아울러 또 하나의 작품으로 오픈 소스 밸런싱 로봇이 있는데 이번에 직접 제작하여 재현해 보았다. 밸런싱 로봇의 원리는 차체 머리 위에 이고 있는 리튬배터리의 무게로 인한 불안정성에도 불구하고 MPU6050보드에 포함된 자이로 센서와 가속도 센서 측정 값을 바탕으로제어를 통해 안정된 자세를 유지한 채 주행하는 RC카 중에서 가장 재미난 작품이다. 아직은 무선 블루투스 코드를 수정해야 하고 하우징 제작이 미진한 상태이지만 재미를 위해서 동영상을 사전에 감상해 보도록 하겠다. 제작 과정과 코딩 부분을 포함한 세부적인 내용은 정리가 되는 대로 블로그에 올릴 계획이다.

블루투스로 직접 핸드폰에서 WeMos LOLIN 보드의 LED를 ON OFF 해보자!

______________________________________________________________________________________________________________________________ LOLIN 보드에 설치된 온습도 측정이 가능한 센서 DHT11의 측정 결과를 핸드폰에 송신하여 Kai Morich의 Serial Bluetooth Terminal을 사용해 터미날 화면에 출력하였다. 이번에는 반대로 터미널 문자 박스..