반응형

ConvNetJS를 이용하면, JavaScript를 이용해 머신러닝을 쉽게 구현하고 테스트할 수 있다.

그래서 연습삼아, 신경망을 통해 XOR을 학습하고 분류하는 과정을 구현해 보았다.

ConvNetJSGetting Started에 나온 Example: Neural Net Classification을 토대로,

Hidden Layer 갯수 및 각 레이어별 뉴런의 갯수를 설정할 수 있게 해 보았다.

신경망에 레이어를 추가하는 개념이 나오기 전까지는 

XOR을 학습하고 분류하는 것이 불가능했다고 하는데, 

실제로 Hidden layer 갯수를 0으로 하고 테스트해 보면,

XOR 분류가 안되는 것을 확인해 볼 수 있다.

 Hidden Layer 갯수

 각 Hidden Layer의 뉴런수


반응형

'머신러닝&인공지능' 카테고리의 다른 글

2048을 Play하는 AI 개발  (0) 2019.11.18
2048과 딥러닝  (0) 2016.08.13
언어별 딥러닝 라이브러리  (0) 2016.07.15
CodeOnWeb 소개  (0) 2016.07.14
MNIST를 통한 Deeplearning 학습 링크  (0) 2016.07.13
반응형

'구슬이 서말이라도 꿰어야 보배'이듯이,

딥러닝도 실습, 개발 및 테스트를 통해서만이 내것이 된다.

그리고, 그러기 위해서는 결국, 개발언어와 그에 맞는 라이브러리를 선택해야 한다.


다음 사이트에, 언어별 딥러닝 라이브러리가 잘 정리되어 있다.

Deep Learning Libraries by Language

프로그래밍 언어별 딥러닝 라이브러리 정리


위 사이트에 보면, Phyton용 라이브러리가 가장 많은 것을 확인할 수 있다.

Theano와 TensorFlow는 이미 조금 알아봤고,

그밖에 다음과 같은 라이브러리들에 관심이 간다.

  1. ConvNetJS
    • JavaScript 라이브러리라서, 별도의 프로그램 설치나 컴파일 등이 필요 없다. 
    • 스탠포드 대학의 Andrej Karpathy에 의해 만들어진 후, 여러 기고자들에 의해 기능이 확장되었다.
    • 별다른 환경 설치가 필요 없는 점, HTML5의 풍부한 표현력을 이용하여 결과를 시각화 하기 좋다는 점 등이 장점일 것 같다.
    • 실제로 예제들을 살펴보면, 다른 라이브러리들과 달리 진행 결과를 눈으로 확인할 수 있게 놀랍도록 잘 보여준다.
  2. Caffe
    • Python 및 C++용 라이브러리
  3. Deeplearning4j
    • Java용 라이브러리
  4. Accord.NET
    • C#으로 만들어진 .NET용 라이브러리


반응형
반응형

머신러닝 관련 이런저런 검색을 하던 차에,

웹을 통해 머신러닝을 포함한 프로그래밍 관련 기술을 배우고,

직접 코딩하고 실행할 수 있는 실습 환경까지 제공되는 사이트를 발견하게 되었다.

CodeOnWeb


현재는 오픈베타 상태라 그런지, 회원 가입 및 사용에 아무런 제약이 없이

무료로 이용할 수 있다.


다음 링크에서 현재 진행중인 강의 목록을 확인할 수 있다.

CodeOnWeb Course


목록 중에, 기계학습/딥러닝에 관한 내용도 있다.

TensorFlow를 통해 딥러닝을 구현하고 테스트하는 내용이 나와 있는데,

TensorFlow 튜토리얼에 나온 내용과 동일하다.

좋은 점은, 웹상에서 강의 내용을 코딩하고 실행까지 해 볼 수 있다는 것이다.

Phyton을 기본 언어로 사용하며, 강의 내용을 실행하는데 필요한 추가 Library들은

이미 서버에 설치되어 있다.

따라서, 사용자는 회원 가입 후 로그인만 하면 

별다른 프로그램 설치 없이 강의를 읽고 실습도 할 수 있다.


서비스를 제공하는 곳은 '래블업'이라는 스타트업이다.

앞으로는 어떨지 모르지만, 

당분간은 자주 애용하게 될 것 같다.




반응형
반응형

머신러닝을 학습할 때 자주 등장하는 예제는 MNIST 분류일 것이다.

MNIST란, 숫자 필기 데이터 모음이며, 

머신러닝 기법간 정확도 비교를 위해 자주 사용된다.

자세한 정의는 다음 링크에 나와 있다.

MNIST database


또한, 딥러닝에 필요한 기능들을 구현해 둔 Library들이 있는데,

내가 찾아본 것은 다음의 몇가지들이다.


위에 열거한 Library들에 대한 Tutorial을 보면,

공통적으로 MNIST 데이터를 사용하는 예제들이 나온다.


Theano

TensorFlow



반응형

'머신러닝&인공지능' 카테고리의 다른 글

언어별 딥러닝 라이브러리  (0) 2016.07.15
CodeOnWeb 소개  (0) 2016.07.14
2-norm과 스칼라곱을 통한 distance 계산  (0) 2016.04.29
빅데이터  (0) 2016.04.28
인공지능 관심 사이트  (0) 2016.03.22
반응형

플라스틱은 우리 생활을 편리하게 해주는 반면,

환경호르몬이 나올 수 있기 때문에, 조심해야 한다.

특히나 아기를 키우는 경우에는, 

아무거나 입으로 가져다 물고 빠는 아이의 습성 때문에,

특히 조심해야 한다.

그래서, 제품을 고를 때 참고할 수 있도록

유해성을 기준으로 플라스틱 소재를 분류해 보려 한다.


  1. 인체에 무해한 종류
    • EVA(Ethylene-Vinyl Acetate copolymer)
    • PE
    • PET
    • ABS
  2. 인체에 유해한 종류
    • PVC(PCV자체는 무해하지만, 연질PVC로 바꾸는 과정에서 첨가되는 화학물질이 유해하다고 한다.)

이 외에도 많이 있을 텐데, 파악되는 대로 업데이트하려 한다.


반응형
반응형

윈도우즈10에서 크롬을 잘 쓰고 있었는데,

갑자기 이상한 현상이 나타나기 시작했다.

조금쯤 웹서핑을 하다 보면 어느 순간,

마우스가 움직이지 않고 키보드 입력도 되지 않으며,

ctrl+alt+del키를 눌러도 아무 반응이 없어서,

결국 전원키를 눌러 컴퓨터를 재부팅할 수밖에 없는 현상이

하루에도 몇번씩 발생하였다.

그래서 인터넷을 검색해 봤더니,

플래시 플러그인을 중지시키면 된다고 나와서 그대로 해보았는데,

별 효과가 없었다.

다른 방법도 여러가지 시도해 보았는데,

여전히 먹통 현상은 해결되지 않았다.


그러던 중에, 드디어 검색을 통해 해결 방법을 찾았다.

다음과 같이 하면 된다.

  1. chrome://flags로 접속
  2. GPU 레스터화 항목으로 스크롤해서 이동
  3. 콤보박스를 클릭해서,  '사용 설정됨' 선택

위와 같이 설정해 주고 난 후에는, 신기하게도

더이상 크롬 사용 중에 컴퓨터가 먹통되는 현상이 사라졌다.

반응형
반응형

C#에서, Form에 구현된 컨트롤을 Form이 아닌 다른 클래스에서 호출하려 하면,

다음과 같은 에러가 발생한다.

크로스 스레드 작업이 잘못되었습니다. 'xxxx' 컨트롤이 자신이 만들어진 스레드가 아닌 스레드에서 액세스되었습니다.


C#에서 UI 컨트롤들은, 자신이 만들어진 쓰레드에서만 엑세스될 수 있게 되어 있다.

하지만, 종종 다른 쓰레드에서 엑세스 해야 하는 경우가 있기 마련이다.

이런 경우에는, 컨트롤의 InvokeRequired 속성을 이용하여 

대리자 호출을 해야 되는 상황인지를 판단하여

직접호출을 하거나 대리자 호출을 하면 된다.

이에 대한 설명은, 다음 사이트에 잘 나와 있다.


다음은, 실제 사용 샘플이다.

delegate void deleg_log(object content, params object[] args);

public void log(object content, params object[] args)
{
    if (InvokeRequired)
    {
        deleg_log call = new deleg_log(log);
        Invoke(call, content, args);
    } else {            
        if (txtResult.Text.Length > 2000)
            txtResult.Text = String.Format(content.ToString(), args) + 
                                  txtResult.Text.Substring(0, 2000);
        else
            txtResult.Text = String.Format(content.ToString(), args) + txtResult.Text;
    }
}


반응형
반응형

OpenCV3의 샘플들을 살펴보던 중에,

KCF(kcf.cpp)를 발견하게 되었다.

OpenCV Extra Modules에 포함되어 있으며,

정확한 경로는 다음과 같다.

  • opencv_contrib/modules/tracking/samples/kcf.cpp


이 파일은, tracking 알고리즘 증에서 KCF(Kernelized Correlation Filters)를 구현한 것이다.

테스트해보니, 속도가 빠르면서도 좋은 성능을 보여 주는 것 같다.


KCF에 대한 자세한 설명은, 다음 사이트에 나와 있다.


위 사이트에 따르면, 이 방식은 트랙킹 방식 중에서 최상위에 속하는 TLD나 Struck 보다도

좋은 성능을 발휘한다고 한다.

그리고, 앞으로의 개발을 위해 프레임워크를 Open Source로 공개한다고도 한다.


반응형

'영상처리 프로젝트' 카테고리의 다른 글

신규 떨림보정(자유도 4, 자유도 2) 테스트  (0) 2016.12.22
OpenCV 2.x와 3.x의 차이  (0) 2016.10.20
opencv_contrib 빌드하기  (0) 2016.03.22
OpenCV속도비교2  (1) 2016.02.29
OpenCV 3.x에서의 OpenCL  (0) 2016.02.25
반응형

얼마전, OpenCV2.1을 빌드해야 할 일이 있었다.

CMake를 통해 프로젝트를 생성한 다음 

VisualStudio에서 빌드하면서 문제가 발생하였고,

cvinternal.h의 소스의 다음 부분을 변경하고 나서야 빌드가 가능했다.

  • #define _WIN32_WINNT 0x0400 => #define _WIN32_WINNT 0x0501


그러면서, 좀더 자세한 내용을 알고 싶어서 검색을 해 보았더니,

다음 사이트에서 원하는 답을 찾을 수 있었다.


즉, 소스가 릴리즈될 때의 윈도우즈 버젼 정보가 

WINVER 혹은 WIN32_WINNT에 담겨져 있으며,

그때문에 컴파일이 안되는 경우에는, 다음과 같이 해야 한다.

  • 소스(헤더파일) 상의 버전 정보를 직접 업데이트
  • 컴파일러 옵션을 통해 윈도우즈 버전 정보 설정


반응형
반응형

IT경력을 인정받는 방법으로, 내가 알고 있는 것은 다음 두가지이다.

  1. 소프트웨어기술자 경력관리시스템
    • 사이트 : https://career.sw.or.kr/
    • 주관기관 : 한국소프트웨어산업협회(KOSA)
    • 공공기관 프로젝트에서, 개발자 경력 증명으로 요구되는 경우가 종종 있다.
  2. 정보통신기술자경력수첩

어떤 SW개발자가 자신의 경력을 과장하는지 아닌지를 

객관적으로 판단하기 위한 방안으로 이런 제도들이 존재하는 것 같다.

하지만, 오히려 실력도 있고 경력도 있는 사람들이

제도의 덪에 걸려 제대로 대우 받지 못하는 경우도 많이 있다.

무엇보다, 이전에 일해온 경력을 인정받는 절차가 까다로워서,

오랜 경력을 가진 사람일 수록 손해를 볼 확률이 높다는 것이다.

(2번은 잘 모르겠고, 1번은 내가 경험해봐서 잘 안다.)


제도 자체가 없어지던가, 아니면

좀더 현실성 있게, 경력자들이 손해보지 않도록

제도가 많이 보완되었으면 좋겠다.


* 관련 링크


반응형

+ Recent posts