아이디어!2018.06.22 07:40

딥러닝 관련 책을 보다보니

지능이란 결국에는 분류기(classifier) 인데


만약 학습데이터가 모두 동일하다면

분류할 수 없는 데이터에서 분류기는 어떤 답을 내놓게 될까?

분류기는 어떠한 것을 분류하는 것이기에..

1. 동일한 분류이다(한가지로 분류해냄)

2. 분류할 데이터가 없음(0으로 인정)

둘중에 하나로 작동하지 않을까 싶은데..


아니면 논리에 의한 추론으로 SVM 처럼

더 많은 데이터를 추론해 내애서 동일 데이터라고 하더라도 다르게 볼 수 있을려나?



그런 면에서 어떻게 보면 배울것이 더이상 존재하지 않을 세상은

죽은 세상이며

완벽한 세상이 되는 걸까?



분류기로 많이 나오는 예제이다.

과거에는 직선을 통해 두개를 가장 확실하게 분류하려 했지만

많은 문제에 직선을 통해(1차 방정식) 구할 수 없기에

점점 차수가 늘어나게 되고, 그렇기에 해가 존재하는지 조차 점점 모호해져 간다.


답이 있을지 없을지도 모르기에

최적해 대신 근사해를 일정 시간내에 받아내오는 해법에 인류를 도달(?)하게 되는데

현재의 DNN 기반 AI들은 뉴런의 weight 값에 따른 블랙박스를 지능으로 사용하고 있다.

이런 weight값을 복제하면 여러개가 작동할테니 복제에 문제는 없겠지만

새로운 룰이 들어올 경우 또 다른 학습이 필요하게 되서

장기적으로는 AI 학습이나 지능에 대한 정의가 새롭게 필요하지 않을까 한다.


개인적인 현재까지의 생각은

규칙 기반의 AI가 최종버전이 되지 않을까 생각한다.

고조선 시대의 삼조법이라던가 현재의 헌법이라던가.

이러한 상위 몇개의 명령에 따라 그걸 위반하지 않는 수준으로

자신의 판단가치에 따라 행동하는 인간과 동일할 지능이 낳은 또 다른 형태의 지능


아래와 같은 그림을 보고 있노라면 경계값이 어디인가? 라는 것이 궁금해진다.

빨강이 하나도 없는 곳이 다른 녹색인가

아니면 노이즈 처럼 끼어드는 하나도 없었을 영역의 녹색은 예외인가

다른 특정 이벤트로 처리해야 하는 것인가 등등


어쩌면 저 혼란함 자체가 차원이고, 경계가 아닌가 생각된다.

크게 보면

빨강 / 녹색에서

빨간 / 혼합 / 녹색

완전 빨간 / 주로 빨간 / 혼합 / 주로 녹색 / 완전 녹색

식으로 구분의 정도를 세분화 해 나가다 보면


과거 퍼지처럼 분류기 자체가 확률분포값을 가지고

일정 부분 A와 B와 유사함이라는 모호함과 추상화를 이뤄낼 수 있지 않을까?

[링크 : https://stats.stackexchange.com/questions/142215/how-is-naive-bayes-a-linear-classifier]

Posted by 구차니

댓글을 달아 주세요

아이디어!2018.04.05 13:48

IoT를 위한 최소 요구사항이 1mW 인데 3mW 급 전원공급이 가능하다라..

예전에 적었는지 기억이 안나는데


반도체의 소비전력이 줄어들고, 

궁극적으로 미세한 정전기 수준으로 작동이 가능해진다면

옷 곳곳에 붙여서 정전기를 먹으며 작동하는 웨어러블 시스템이 가능하지 않을까 했는데

그 상상이 현실로 조금은 더 가까워진 느낌이다.



만약에 ePaper 소비전력 극소화 + 리프레시 속도 증가

저전력 CPU의 소비전력 극소화

기사의 자기장->전기 변환 장치 및 정전기를 전원공급장치로 사용가능한 시스템 등장


그러면.. 비닐옷만 입으면 정전기를 냠냠하면서

AR을 구현가능한 세상이 올 듯?


[링크 : http://v.media.daum.net/v/20180405120032921]

mW를 메가와트라써서 신나게 까이는 현장 ㅋㅋ

Posted by 구차니

댓글을 달아 주세요

아이디어!2018.02.13 19:02

버스/지하철에서 특정 인물의 목소리만 잘들리는 현상이 있어서 든 생각


tms320f2808이나 DE0-nano의 ADC 12채널 처리를 타겟 주파수로 따로 추적하면 어떨까?

2채널 정도는 스테레오로 전 파장대를 받아서

기반 데이터로 사용하고, 들어오는 데이터 중에 특정 데이터를

MIC 레벨에서 필터링 해서 특정 주파수만 받아 들이면 처리가 용이하거나

아날로그 레벨에서 필터링하고 ADC range를 조절해서 더 정밀하게 특정 대상을 추정가능하지 않을까?


실제 효용이 있는지, 가능한지 모르겠네...


프로그래머블 대역필터가 있으면

adc통해서 전 대역 2개 받아서 처리할게 아니라 

대역별로 받아들이거나 특정 주파수나 대상을 추적하게 가능하지 않을까?

[링크 : http://www.ti.com/lit/an/sbaa094/sbaa094.pdf]

[링크 : https://www.allaboutcircuits.com/technical-articles/implementing-a-low-pass-filter-on-fpga-with-verilog/]

[링크 : https://ko.wikipedia.org/wiki/대역_필터]


일단 찾은 건..

프로그래머블 가변저항 정도..

프로그래머블 캐패시터도 논문은 보이는데 실제 제품은 모르겠고

RC 시정수를 통해서 band-pass나 low-pass, high-pass로 구성이 가능하니

R/C만 프로그래머블 한 녀석이 있으면 충분히 가능하지 않을까?

Posted by 구차니

댓글을 달아 주세요

아이디어!2017.12.28 14:10

양덕들 처럼 우리나라도

개발자 덕후들이 놀수 있는 공간이 있음 얼마나 좋을까


[링크 : http://www.edaily.co.kr/news/news_detail.asp?newsId=02610886615929248]

[링크 : http://bizn.donga.com/3/all/20071206/21234324/1]

Posted by 구차니

댓글을 달아 주세요

아이디어!2017.12.28 13:26

애기가 안잔다... -_-

바운서 흔들흔들 해주는 것도 힘들고

그냥 싼 바운서에 덜덜이 켜놔도 별 반응도 없고

발로 흔들흔들해주면 조용해지는데


찾다 보니, 상용제품으로는 있긴한데

[링크 : https://www.4moms.com/]

    [링크 : https://blog.naver.com/kimmihyo/220188986056]


이런 거창한(?)게 아니더라도

바운서 머리쪽에 실을 묶고

바운서 하단 뒤쪽의 철봉 지지대에

서보 모터를 달아서 왔다 갔다 해주면 안되려나?

어짜피 빠를 필요 없고, 이동할 각도가 클 필요가 없으니

RC용 싸구려 서보로도 충분할 듯..

일단 만들어는 봐야겠다 ㅋㅋ



+

[링크 : http://wiki.vctec.co.kr/opensource/arduino/servocontrol]

Posted by 구차니

댓글을 달아 주세요

아이디어!2017.12.14 10:16

얼마전 읽은 비트코인 관련 분석글 링크는 없는데..

요약만 하자면

CPU -> GPU -> FPGA -> ASIC 의 순서로 채굴이 변화되며

앞 세대는 뒷세대가 나오면 처참하게 버려진다.

하지만 뒷 세대가 나오지 않으면 블럭체인 기반의 가상 통화들은 활력을 얻지 못한다. 


인데. 직설적으로 표현하면

결국 돈 놓고 돈 먹기라는 의미이다. ASIC을 찍어내기 위해서는 자본이 무지막지하게 들고

GPU도 결코 싼건 아니라 초기 투자비 + 유지비를 무시 못하는 편이고

아무튼 차세대 블럭체인들은 하드웨어 로직을 막으려는 경향이 있다고 하는데

그게 수명을 늘려줄지, 오히려 단축시킬지는 고민해 봐야할 문제라고 보여진다.

다만 그러한 보호 수단이 얼마나 갈지 미지수고

(SW로 작성 가능한 로직이라면 효율의 문제지

결국에는 VHDL로 하드웨어 작성이 가능하고 그럼 ASIC은 결국 나올수 밖에 없다)

그러한 폐쇄성이 표준화나 보급에 독이된 VHS와 BETA 방식의 싸움으로 나아가게 되지 않을까 생각된다.




머 근데 정말 하고 싶은 이야기는 비트코인이 아니고

이런 발전사를 보건데..

저~~~얼대 내가 관심이 가서 하는 말은 아니지만

이제 GP-GPU의 시대는 끝났다! FPGA의 시대가 왔다! 아닐까 한다.


여전히 SW 개발자들은 Java가 좋니 C/C++/C# 등이 좋니 싸우는데

파이썬도 좋아요 하면 너 이단이다! (응?) 라던가 API는 언어가 아니에요~ 라던가 하지만

결국 시대의 흐름을 보건대, SW개발자는 언넝 짐싸들고 VHDL/Verilog를 배워야 하지 않을까 생각 된다.


CPU의 역사는, 매번 배선을 바꾸어야만 작업을 할 수 있는 hard wired progam의 불편함에서

데이터만 바꿔 씀으로서 다른 작동을 할 수 있는

일종의 "데이터 엔진(혹은 게임엔진)" 으로서의 범용 프로세서로 발전 되었고

이러한 범용성은 역설적으로 개발자의 역량에 결과가 달리고

보이지 않는 로직과 디버깅 되지 않는 문제로 인한 유지보수비용이라는 짐을 만들어 냈다.


물론 VHDL도 하드웨어 로직도 intel cpu 버그 처럼 사람이 만드는 것이라 버그가 없을 순 없지만

머리속에서 떠다니는 로직보다는 눈으로 보이는 로직으로서 훨신 수월한 디버깅 수단들이 있으니

상대적으로 소규모의 성능 집약적인 방향으로 나아갈 수 있지 않을까 한다.


극단적이지만

OS와 업데이트와 같이 CPU 아키텍쳐를 바꾸어 버리면

범용 컴퓨터가 아닌 임베디드 시스템으로서 소프트웨어 업데이트를 통해

OS와 같이 더욱 효율적인 SW 알고리즘과 HW 아키텍쳐를 발전시키고

더 나아가서 AI와 접목하여 중앙 서버에서 AI의 학습을 통해 

자기 스스로 SW 알고리즘과 HW 아키텍쳐를 발전시켜 나가는 시대가 오지 않을까 한다.


물론 아직까진 허황된 생각이고

그정도 규모를 구현할 FPGA라면 가격도 어마어마 할테지만

규모의 경제 관점과(일단 intel이 altera를 먹었으니), 공정 미세화, 그리고 AI의 발전속도를 고려해보건대

그리 멀지 않은 시점에 프로그래밍 언어는 HDL과 MCU를 위한 C와 비슷한 등급의 상위 언어 정도로

통일되지 않을까?



+

발상의 시작은 microblaze 와 nios 2

SW CPU의 존재와 intel의 FPGA 업체 인수. 

그리고 cyclone V(altera/intel)과 zynq(xilinx)와 같은 하드웨어 ARM 코어를 내장한 FPGA 로직의 출현.

그에 따른 빅데이터/기계학습.

자기 성장형 로직에 따른 AI 발전.


+

아직까진 FPGA가 로직을 바꾸려면 느린속도로 외부 SPI FLASH에 쓰고

(왜 느린지 이해가 안됨, SPI FLASH 원래 write 속도에 비하면 백만광년쯤 느린 느낌, JTAG 문제였나?) 

리부팅을 해야 하지만, 나중에 되면 FPGA 내부에 쿼드코어 식으로 구획을 나누어서

순환식으로 데이터 바꿔쓰고 부분 리셋걸어 재시작 없이 구현이 가능해진다면

서버제품군이나 사업현장에서도 충분해지지 않을까 한다.

물론 아키텍쳐 변경시에는 SW와 같이 변경이 되어야 하지만, 

하위호환성을 포기 하지 않고 약간의 오버헤드를 감수하면

몇번의 과정을 거쳐 순환적으로 재시작하면서 아키텍쳐와 SW 알고리즘을 갈아 엎어버리는 식으로

더 높은 성능을 꾀할수 있지 않을까?

또한, FPGA 구획을 나누어서 현재 어플리케이션이 필요한 대로 SPI FLASH가 아닌 DDR4 메모리 등으로 연결되서

현재 CPU 처럼 메모리에 프로그램이 아닌 하드웨어 로직은 탑재 후 부분 리셋을 통해

멀티태스킹에도 대응하여, 제한된 로직을 실시간 변경으로 대응하는 방법도 가능할 것으로 보인다.


+

FLASH 대신 DRAM의 이용은 궁극적으로 C와 VHDL의 경계를 허물고

어떤 의미로는 안드로이드에서 ios의 변환처럼

중간 언어를 통해 번역되던 오버헤드를 없애고

native 하게 돌리는 수준으로 하드웨어 자체를 SW화 시키면서

더욱 더 고성능의 저전력 시스템으로 나아갈수 있을 것으로 생각된다.

(여기서 DRAM의 이용은 configuration memory으로서의 사용임)


+적다 보니 궁극적으로는.. VHDL을 빌드할 수 있는 하드웨어가 존재해야 하거나,

내장된 ARM 코어나 x86 코어가 아주 빠르게 소규모의 fpga를 빌드할 수 있어야 할 것으로 보인다.

그러고 보니.. 굳이 FPGA에 ARM 코어 내장할 이유가 없네.. x86이면 머 어때 빌드할만큼의 성능만 나오면 되지?

그게 아니라면 fpga에 멀티코어를 구현해서 하나는 반드시 특정 아키텍쳐로 고정후 이녀석도 나중에

업데이트를 통해 발전시켜 나가면 어떨까 싶기도 하지만..


+

순환 리셋을 고려하다 보니. 필수적으로

CPU hot plug가 선결 조건인듯. 런타임에 cpu를 끊고 연결하고 스케쥴러에 연동해서 실시간으로 작동시키는..

(물론 리눅스나 윈도우 서버군에서는 제공은 될텐데.. runtime hot plug가 될진 찾아 봐야겠네)

생각해보니.. IDC에서도 cpu는 쿨러 문제로 핫 플러그 지원한다고 한들 슬롯 타입으로 된 CPU가 존재하지 않으니

(예전의 slot 1같은거 말고) 새로운 하드웨어와 그에 따른 운영방법이 생겨나야 할 것으로 보인다.

아무튼 기술 자체는 새로울것도 없는 현재 존재하는 기술이나 중요도가 달라질 뿐?

Posted by 구차니

댓글을 달아 주세요

아이디어!2017.12.03 19:19

아직은 현실적으로 많이 무리이긴 하지만

역설적으로 AI 칩을 위한 베이스가 Zynq 같은 FPGA가 아닐까?


Cortex 같은 모바일 CPU와 FPGA가 통합된 형태

이게 옳다고 하긴 힘들지만

더 대규모의 FPGA가 가능해지고

그 FPGA에 현세대 CPU 급의 로직을 써넣을 수 있는 게이트 수량이 된다면

  • FPGA based CPU
  • FPGA 컴파일러(?)
  • 프로그래밍 언어와 컴파일러
  • 그리고 자가 성장, 최적화 코어 모듈

네개의 조합으로 하드웨어 레벨에서 CPU가 최적화 되고

그에 맞춰 프로그램을 발전시켜 알고리즘 뿐만 아니라

아키텍쳐 최적화. 그리고 그에 따른 프로그램의 업데이트

궁극적으로는 OS를 포함해 중앙 집중 적인 업데이트로 성능 향상을 꾀하거나


처리내용에 특화하여 용도 최적화하여

더 나은 성능을 제공하는 쪽으로 자가 최적화 하는 시스템은 어떨까?


+

microBlaze 라고 해서 FPGA 로 구현하는 ARM이나 PowerPC도 있으니

충분히 가능성은 있을 듯 한데.. FPGA가 널리 못 쓰는 이유가

CPU로 구성하기에는 전력대 성능비가 떨어지지만, 요즘 모바일 영상 처리에서

절대 성능대 절대 전력으로 전성비 및 가성비에 두각을 드러내고 있고

발전 가능성이라는 측면에서 딥러닝이나 AI와 연관되면

하드웨어 아키텍쳐 효율과

소프트웨어 알고리즘 효율과

특화된 하드웨어의 자율적인 구성으로 재시작 없이 FPGA 전체가 아닌 일부만 업데이트 함으로서

실시간으로 성능을 극대화 하는 식으로 구성이 가능한 식으로 발전이 되지 않을까?

[링크 : https://en.wikipedia.org/wiki/MicroBlaze]

Posted by 구차니

댓글을 달아 주세요

  1. ㅋㅋ

    지x랄 하고 자빠졌네 라는 짤이 생각나네요

    2018.03.16 16:09 신고 [ ADDR : EDIT/ DEL : REPLY ]

아이디어!2017.05.18 08:23

기사를 보다 떠오른 생각

거짓말 혹은 거짓이라는 것 자체는

사람이 믿을 만하지만 실체가 존재하지 않는 가짜라는 의미가 될 수 있고

(이렇게 적고 보니 또 망할 시뮬라시옹이 떠오르네 -_-)


다르게 생각하면 이러한 거짓은

상상력 역시 이런 거짓에 기반을 하고 있는게 아닐까?


사람은 거짓말을 하기 위해 지능이 한층 더 발전하고

거짓말을 기반으로 상상력을 펼쳐서 지금으로 발전해온게 아닐까 라는 생각이 들었다.


"GAN을 통해 무한의 가짜 고양이 사진들을 만들어낼 수 있다는 말"

즉, GAN은 기계가 가지지 못했던 상상력이나 창의력을 가지게 될 수 있다는 말의 동의어..



조금 더 확장을 해보면

시뮬레이션 조차도 그럴싸한 결과를 얻기 위한 과정이고

가능성, 신뢰할 만 하다 라는 말 조차도

얼마나 진짜 같으냐에 기반을 하고 있다는걸 보면


결국 인간의 두뇌는 거짓말을 하기 위한 것이었나...


[링크 : http://v.media.daum.net/v/20170511030912202]

Posted by 구차니

댓글을 달아 주세요

아이디어!2017.05.11 21:02

가지고 있는 녀석이..

흰색 / 녹색 / 빨간색 LED였나?


0~30는 흰색

30~50은 녹색

50~100은 빨간색 * 1

100~200은 빨간색 * 2

200~300은 빨간색 * 3


이렇게 5개 정도 해서 해볼까?

데이터는.. 공공데이터 포탈 API라던가 웹 페이지 파싱을 통해서 라즈베리에서 처리하고

라즈베리에 GPIO를 이용하여 LED 정도야 머 쉬우니까?


[링크 : http://boom2580.tistory.com/147]




+

샤프 1.5만원 부터 시작하는 먼지 센서가 있긴한데

PM2.5 / PM10 구분 없는 듯 한데.. 은근 비싸네.. 레이저 방식은 ㅠㅠ

[링크 : http://eleparts.co.kr/front/productlist_morning.php?code=005053003000]



+

2017.05.12

GPIO가 연달아 4개 이상있는곳이 없는데.. 대충 찾아 보니3개는 많다.

녹색/노랑/빨강 3개 할까..

50/100/150 이런식으로?

Posted by 구차니

댓글을 달아 주세요

아이디어!2016.05.19 21:19

망할 행렬의 경우의 수는 기하급수적으로 늘어

몇번째 행렬인지를 나타내려면 그걸 표기하기 위한 비트가

갯수보다 커진다


즉 8비트의 경우의 수는 40320

포함가능한 바이트는 2바이트

물론 찾는 시간을 늘리고 중복가능성으로 줄이더라도

1바이트를 압축해도 2바이트


만약 블럭단위로 하나면 경우의 수가 노답...


0과 1중 적은 갯수로 기준잡고

연산량과 행렬수를 줄인대도

이래저래 답이 안나온다


nn!
01
11
22
36
424
5120
6720
75040
840320
9362880
103628800
1139916800
12479001600
136227020800
1487178291200
151307674368000
1620922789888000
17355687428096000
186402373705728000
19121645100408832000
202432902008176640000
251.551121004×1025



[링크 : https://en.m.wikipedia.org/wiki/Factorial]

Posted by 구차니

댓글을 달아 주세요