분류 전체보기 1075

Simple Bow 알고리듬에서의 Back-propagation of Matrix Multiplication

다음 그림의 Simple CBOW 알고리듬에 의한 알고리듬을 살펴보면 입력 데이터의 은닉층 처리와 출력층 처리에 Matrix Multiplication 처리가 핵심적인 역할을 담당한다. Simple CBOW 알고리듬 학습과정 알고리듬을 코딩하려면 MatMul층에 대한 순전파(forward propagation)와 역전파(back-propagation) 연산이 필수적일 것이다. 순전파 연산은 메트릭스의 곱셈과 덧셈 연산을 이해하면 쉽게 코딩이 충분히 가능하지만 다층 구조에서 역전파는 합성함수의 편미분 값들을 체계적으로 연산할 필요가 있다. 머신러닝에서 역전파 연산의 필요성은 웨이트 값들을 랜덤한 값으로 초기화하므로 Cost 함수가 취해야 할 최소값과는 큰 차이가 있다. 이러한 차이를 줄여 학습을 통해 Co..

자연어처리 2023.01.03

텐서플로우 다변수 선형회귀법 예제: Antique Grand farther’s clock

할아버지 시계 입찰가 결정 머신 러닝 분야의 regression 예제들은 통계학과 밀접한 관계가 있ek. 시카고에는 밀을 포함한 곡물 중심의 상품 거래소가 오래전부터 있어 귀중한 거래 데이터들이 기록되어 남아 있다. 아래의 인터넷 주소를 참조해 보자. 참조: StatSci.orf http://www.statsci.org/data/multiple.html 이번 절에서 다루려는 할아버지 시계는 희귀한 고가의 골동품으로서 입찰 가격 사례데이터가 연식(Age)과 입찰 참가자 수(bidder)를 파라메터로 하여 상세한 자료를 남기고 있다. 아래의 인터넷 주소를 참조하여 data 파일을 다운하여 사용하기로 한다. 참조: http://www.statsci.org/data/general/auction.html 상태가 ..

텐서플로우 선형회귀법 예제

그림의 선형회귀법 예제에서 기울기 w를 미지수로 생각하고 회귀법(regression)으로 찾아보자. 미지의 웨이트 값 w는 처음에 random number 나 임의의 상수값을 준 상태에서 시작하면 된다. 한가지 주의할 점은 직선의 방정식을 결정하는 과정에서 2개 이상의 많은 수의 데이터들이 주어질 경우 이 점들을 대표할 수 있는 직선을 결정하게 되는 것이며, 이는 통계학이나 사회학 분야에서 많이 응용되는 기법이다. TensorFlow 라이브러리를 사용하여 1차식 regression 코드를 작성하자. 아울러 matplotlib.pyplot 라이브러리를 사용하여 주어진 좌표 데이터를 사용하여 점그래프(scatter graph)와 구해진 1차식 regression graph를 함께 작도하도록 한다. 1 imp..

IMDB 영화 리뷰 데이타 베이스 Sentiment 분석

스탠포드 대학 서버에서 제공하는 IMDB 데이타 베이스를 사용하여 Sentiment 분석을 해 보기로 한다. Sentiment 라 함은 여론조사는 아니고 특정 사안에 대한 쏠림 경향 정도로 생각하면 될 듯하다. 첫 번째 시도는 Sevastian Raschka의 “Python Machine Learning” 8장의 오픈 소스를 사용해 보았으나 실제로 결과를 얻어낼 수 없었다. 이미 Sevastian Raschka의 친절한 가이드 내용에 따라 tfidf 계산 까지 성공적으로 마쳤으나 마지막 부분에 내용을 읽어 보면 코드 실행 시간이 데스크 톱 PC를 사용할 경우 40분이 걸린다는 언급이 있긴 하지만 뭔가 찾기 어려운 버그들이 내재되어 있는듯하여 또 다른 스텐포드 대학쪽에서 Github 에 올려놓은 오픈소스로..

자연어처리 2022.12.19

RC Car 블루투스 조종기 앱 인벤터 코딩

1. 앱 인벤터 열기 클라우드 소프트웨어인 앱 인벤터는 구글 로그인 후 MIT app inventor 로 검색하여 홈페이지를 열자. 과거와 달리 이제는 안드로이드 폰 만 아니라 아이폰도 된다고 명시되어 있다. 안드로이드 폰의 경우 Play Store에서 벌집모양의 로고를 가진 앱을 미리 다운받아 둔다. 아이폰도 마찬가지다. 앱 작성을 시작하기 위해서는 Create Apps! 버튼을 클릭하여 클라우드 IDE 를 열도록 한다. 2. 새프로젝트 시작 처음열어보는 사용자는 아래와 같이 기존 사용자와는 달리 당연히 저장된 파일들이 없을 것이다. Start new project 버튼을 클릭하여 새로운 앱(알고리듬)을 발명해 보도록 하자. 발명되는 알고리듬 자체는 지적재산이지만 반드시 실용적인 응용이 있어야 특허 출..

아두이노 RC Car 블루투스 제어 키보드 앱인벤터 앱 설치

최근 앱인벤터에서 RC Car 제어 앱인벤터 앱을 설치해 보니 Need android permission BLU ... 에러가 발생한다. 과거에 작성한 앱인벤터 코드가 현재에는 정확하게 설치가 되지 안ㄹ는 문제가 발생했다. 아무래도 앱인벤터 주최측의 업그레이드가 시원치 않다는 잠정적인 견해를 가질 수 밖에 없다. 따라서 과거에 작성한 BTRCCAR.apk 파일을 USB로부터 받아서 PC 의 구글 NDRIVE에 넣게 되면 자신의 안드로이드 폰의 NDRIVE에서도 공유할 수 있다. 안드로이드스마트폰의 Play Store 에서 구글 NDRIVE 를 설치한 후 열어보면 BTRCCAR.apk 가 있음을 확인할 수 있다. 이 파일을 꾸~욱 누르면 앱 설치가 시작된다.

아두이노 RC Car 블루투스 제어 키보드 앱인벤터 앱 설치 버그 발생

최근 앱인벤터에서 RC Car 제어 앱인벤터 앱을 설치해 보니 Need android permission BLU ... 에러가 발생한다. 과거에 작성한 앱인벤터 코드가 현재에는 정확하게 설치가 되지 않는 문제가 발생했다. 아무래도 안드로이드폰 제조사나 또는 앱인벤터 주최측의 업그레이드가 시원치 않다는 잠정적인 견해를 가질 수 밖에 없다. ※ 또 다른 객관적인 증거로는 안드로이드 스튜디오에서는 최근 업그레이 IDE에서 버전 업을 통해 블루투스 코드가 제대로 작동된다는 점이다. https://ejleep1.tistory.com/1291 안드로이드 스튜디오 Java Version 1.8에서 11 로 수정 인터넷에서 다운받은 예전의 안드로이드 코드를 오픈하여 실행할 경우 안드로이드 스튜디오 설치과정에서 특정 버..

Information Bit Number 및 Entropy 계산

머신러닝의 다양한 학습법들이 물리학이라든지 또는 정보과학에서 유래되었다는 점에 유의하자. 입자들의 볼츠만 확률분포가 차용되어 TensorFlow의 softmax에서 사용된다는 점도 그중의 하나일 것이다. 1948년 MIT에서 정보과학의 기초를 닦았던 Claude Shannon 교수의 통신에 대한 기본이론을 통해서 정보(information)의 비트수 계산법과 머신러닝 분야에서 엔트로피에의 응용에 대해서 알아보자. 랜덤 변수 X 의 가능한 값들이 A, B, C, D 일때 다음의 문자열 메시지 “BAACACCDDCDADABCDBBB…” 의 철자별 출현 빈도수의 확률로 분석해 보자. 이 문자열 데이터를 ‘0’과 ‘1’을 사용하면서 엔코딩하려면 각 문자별로 다음과 같이 각 2비트를 사용하여 엔코딩 할 수 있을 ..

통계역학의 볼츠만 확률분포와 엔트로피

열역학(Thermodynamics)에서 Thermo 란 열을 뜻하며 dynamics는 변동을 뜻한다. 즉 열역학이란 시스템의 열적 변화를 따져보는 것이 된다. 열역학적 Control Volume 이 잘 정의된 시스템의 경계를 통해 열출입 ∆Q 가 일어나게 되면 아울러 내부의 압력 변동에 따라 Control Volume 의 변동에 따라 일(Work) ∆W 가 행해진다. 특히 Control Volume 경게를 통한 열출입 ∆Q=0 이면서 일 ∆W=0 인 이상기체의 물리적 상태를 고려해보기로 한다. 1800년대 후반에 볼츠만은 미시적인 원자나 분자의 물성이 물질의 거시적인 상태에서의 물성과 어떤 관계에 있는지를 깊이 고찰하여 물리학에서 통계역학의 토대를 쌓았으며 그의 대표적인 아이디어가 바로 볼츠만 분포와 엔..

TensorFlow solution of x - 1.12345 = 0

머신 러닝 연구가 아무리 첨단을 간다 해도 머신 러닝이 그렇게 대단한 툴이라면 이 정도 간단한 문제는 당연히 풀 수 있어야 하겠지. 항상 어려운 어렵고 난해한 문제만 쫓아 다니다 보니 x – 1.12345 = 0 과 같이 우스울 정도로 쉬운 문제를 어떻게 코딩해야 할지 해보기 전에는 막막하다는 생각이 들기도 한다. 물론 머신 러닝이 컴퓨터에 인스톨되기 때문에 기본적인 덧셈, 뺄셈, 곱셈, 나눗셈의 4칙 연산이 가능하므로 양변에 1.12345를 한번 더해주면 끝나는 간단한 문제이지만 이 방법에 의해서 푼다면 그것은 머신 러닝이라 할 수는 없다. 머신 러닝의 특징이 과연 무엇인가? 데이터 학습, random number 생성에 의한 웨이트와 바이아스 설정, hypothesis 설정, 경사하강법 적용 및 웨이..