O`reilly 사에 뉴스레터를 신청하면 가끔 신규 책을 준다면서 설문조사를 요청할 때가 있다. 그때 받은 책중 하나가 바로 이거였다. 사실 내가 선택할 수 있는 책중 가장 관심있는 분야여서 선택한 것도 있지만, 책에 담겨져 있는 이론적인 내용이나 실무적인 내용에 대한 설명이 굉장히 잘 되어 있었다. 알고보니 현재도 amazon에서는 Natural Language Processing 분야에서 Best Seller 1위에 랭크되어 있었다. 방대한 량만큼이나 최근의 트랜드를 잘 담고 있던 책이라 언제쯤 한국에 번역되려나 싶었는데, 원서가 출시된지 거의 1년만에 번역서로 출시되었다. 이 책에 대한 리뷰를 간단히 해보고자 한다. 항상 내가 갈구하고 바랬던 머신러닝 관련 책들은 수식이나 원리에 대한 설명이 잘되어..
C언어... 아마 프로그래밍을 하는 사람이라면 거의 한번쯤 접하는 언어가 아닐까 싶다. 우리 주변에서도 살펴보면 C언어를 통해서 구현되는 소프트웨어들이 정말 많다. 내가 하는 일도 그런거지만 어떤 기기를 제어하는 것도 실상 살펴보면 대부분이 C언어로 구현되어 있고, 내가 속해있는 조직도 보면 통신 프로토콜상의 계층들을 C언어로 구현하고 있다. 그렇게 개발된 소프트웨어가 생활상에 다 들어가 있다. 거진 뭔가를 제어하는 용도의 소프트웨어는 대부분 C언어로 되어 있다고 생각하면 좋을 거 같다. 그런데 보통 C언어는 배우기 어려운 언어라고 생각하는 사람들이 많다. 아무래도 언어 본연적인 내용 외에도 컴파일러나 메모리 같은 외부 환경에 대한 이해도 필요하고, 알아야 될게 많다. 그래서 흔히들 많이 택하는게 참고할..
4차 산업이란 말이 화두가 되면서 기술업에 종사하는 사람들이 최근에 가장 많이 듣는 주제들이 있다. 바로 딥러닝과 인공지능이다. 사실 통계학이나 기계학습에서 파생되어 온 내용이라 오래전부터 다뤄졌던 분야이기도 하지만, 최근에 이 기술을 응용한 서비스나 상품들이 사람들이 기대한 것보다 나은 결과를 보여줘서 더 주목받는 것 같다. 예를 들어 딥마인드의 알파고나 보스턴 다이나믹스의 아틀라스 의 경우만 봐도 정말 동작하는 모습을 옆에서 보면 소름이 끼칠 정도이다. 개인적으로 생각하건데 이런 포괄적인 범주에서 바라본 인공지능의 이점은 응용할 수 있는 분야가 참 다양하다는 것이다. 예전에는 단순히 미래의 값을 예측하는 regression 기법에 그쳤던 것이 이제는 의학 분야에서 질병을 진단하고 예측하는데까지 쓰이고..
바로 이전 책 리뷰에서는 "엔지니어를 위한 파이썬"을 소개했다. 사실 그 글 서두에서도 언급했던 이야기이지만 Python이란 언어는 정말 전세계적으로 많이 쓰이는 언어이다. 그 근거로 TIOBE Index를 소개했었는데, 문득 이번달의 결과도 한번 소개해보고자 한다. 여전히 python은 JAVA, C, C++과 더불어 많이 쓰이는 언어 중에 하나이며, 아마 짐작으로는 현재와 같이 머신러닝/딥러닝 이나 웹앱 개발이 많이 이뤄지는 개발 트랜드라면 먼 미래에도 여전히 많이 쓰이고 있는 언어로 자리잡고 있지 않을까 싶다. 뭐 아무튼 이런 기류에 맞춰 시중에 보면..
최근에 들어오면서 가장 핫한 언어는 무엇일까? 많은 평가 지표들이 있지만, 그래도 많이 인용하는 지표가 TIOBE Index라는 것이다. 대충 소개글을 읽어보면 이 index는 한달에 한번 전세계 개발자들과 vendor들의 투표를 바탕으로 발표된다고 하는데 이번 12월 결과를 한번 살펴보면 다음과 같다. 결과를 보면 작년과 대비해서 상위권에 있는 언어들의 순위는 바뀌지 않는다. 그 중 내가 장담하건데(물론 내가 장담한다고 뭐가 되는건 아니지만...) 적어도 Python의 위치는 언젠가는 JAVA, C, C++의 순위 중 하나를 차지하지 않을까 싶다. 물론 그러기엔 C,C++, JAVA가 차지하는 비중이 크긴 하지만 차후의 지원성 측면이나 최근 핫한 이슈중 하나인 딥러닝/머신러닝 를 쉽게 실생활에 반영할 ..
요즘 언론에서도 그렇고, 여기저기에서도 4차 산업혁명라는 단어를 사용하고 이에 대한 대비를 해야 한다고 촉구하고 있다. 회사에서도 이와 관련된 세미나를 진행하면서 어떻게 하면 최근 트렌드인 딥러닝이나 머신 러닝을 현업에 반영할 수 있는지를 많이 고민하는 것 같다. 내가 아는게 맞는지는 모르겠지만 4차 산업혁명이란 용어 자체는 2016년 세계 경제 포럼에서 언급된 내용으로, 기존의 3차 산업혁명에서 진행된 기술과 인터넷과의 결합이라는 개념에서 발전해 모든 제품과 서비스가 하나의 네트워크로 연결하고 사물을 지능화시키는 것을 의미한다. 간단히 말해 기술에 관심이 있을만한 사람이라면 한번쯤 들어봤을 인공지능, 자율주행차, IoT, 챗봇 같은게 모두 4차 산업혁명의 산출물이라고 보면 좋을거 같다. 그런데 사실 이..
딱 처음 책을 접했을 때는 뭐랄까... 그림책 같았다. 거기다가 책제목부터 다른 책과 차별성이 있는 듯했다. 일반적으로 "... 첫걸음", "Introduction to ..." 와 같이 정형화된 제목을 갖추고 있었는데, 이 책은 짧은 시간임을 강조한 "3분" 이라는 단어를 제목에 포함해 쉽고 짧은 시간안에 책을 설명하고 있다는 느낌을 주고 있었다. 뭔가 이런 부분에서는 다른 출판사에서 나오는 딥러닝 관련 서적과는 다른 나름대로의 특징을 보여줬다. 사실 이전 책 리뷰를 할때도 언급했던 부분이긴 하지만, 난 이렇게 경량화된 책이 좋다. 휴대성 부분에서나 필요할 때 언제든 들고 볼 수 있는 사이즈이기에 회사 출근할 때나 짬짬히 여유시간이 있을 때 꺼내보기가 좋기 때문이다. 물론 자세한 설명과 완벽한 예제가 ..
SNS나 주변 뉴스만 보더라도 알겠지만, 최근의 기술 트렌드는 머신러닝, 딥러닝 이런 것들이다. 우리가 알고있는 세계적인 기업들의 기술의 발전 방향도 이런 부분을 중점적으로 다루고 있다. 사실 개인적으로 봤을 때도 정말 놀라운 기술 발전이 아닌가 싶다. 과거 같으면 사람이 수동적으로 했어야 했던 일들을 이런 기술을 적용시킴으로써 자동화할 경우, 노동력도 절약할 수 있고, 사람이 할 수 있는 일을 대체할 수 있다고 생각하면 정말 놀랍고 편한 세상이 될것 같다. 그래서 주변에서 보면 정말 많은 사람들이 이에 대해 관심을 가지고 공부하고 있는 것들이 보인다. 나도 주변에서 활용할 수 있는 강의나 자료들을 통해서 계속 공부하고 있다. 최근에 Udacity에서 진행하고 있는 Machine Learning Nano..
(이 포스트는 한빛미디어에서 제공하는 "DirectX 12를 이용한 3D 게임 프로그래밍 입문"을 읽고 쓴 서평임을 알려드립니다.) 개인적으로 컴퓨터를 공부하는 입장에서 가장 난이도가 높은 분야를 3개 꼽으라고 하면 운영체제, 컴파일러, 게임을 꼽고 싶다. (개인적인 의견일 뿐 다른 분야가 더 어려울 수 있다. 내가 잘 모르는 것일 수도 있고..) 운영체제를 다루기 위해서는 하드웨어의 복합적인 동작을 알아야되고, 컴퓨터는 언어를 컴퓨터의 입장에서 봐야하기 때문에, 어렵다고 선택했다. 그리고 마지막으로 게임을 선택한 이유는 게임을 개발하기 위해서는 수학을 공부해야 되기 때문이다. 물론 사람에 따라서는 "수학이 제일 쉬웠어요" 라고 할수도 있겠지만, 3D를 표현하기 위해 내부적으로 여러 수식이 복합적으로 적..
어느덧 회사에서 개발자로 일한지 2년째가 되어간다. 아마 다른 포스트에서 소개했는지는 모르겠지만, 회사에서 하는 일은 통신 관련 소프트웨어, 그중에서도 특정 플랫폼에 올라갈 드라이버나 wrapper를 개발하는 업무를 한다. 물론 상황에 따라서는 개발 환경 구성 및 공유의 역할을 하기도 하지만 main job은 임베디드 소프트웨어를 개발하는 일이다. 회사에서 하는 일중에 개인적으로 느끼는 어려운 일을 꼽아보면 여러개가 있겠지만, 그 중에서도 디버깅이 차지하는 비중에 가장 크지 않을까 싶다. 아무래도 임베디드 소프트웨어라면 그 하드웨어에 맞는 문서를 분석하고 그에 맞게 개발해야 되는데, 말 그대로 디버깅이 필요하다는 말은 십중팔구 내가 해당 하드웨어의 스펙을 잘못 이해하고 개발했을 가능성이 크기 때문이다. ..
한번 이 글을 읽는 사람이라면 물어보고 싶은 내용이 한가지 있다. 과연 여러분은 자료구조와 알고리즘을 어떻게 배웠을까? 아마 컴퓨터 관련 전공을 가진 사람이라면 위의 책 중 하나는 읽지 않았을까 싶다. 특히 Cormen 책은 거의 알고리즘 계의 바이블 수준일 정도로 많이 읽을거라고 생각한다.(물론 아닐수도 있고, 내가 모르는 알고리즘 책이 또 있을 수 있다.) 참고로 나는 맨 밑의 책(Horowitz 책)으로 공부했었는데, 과도 컴퓨터과도 아니고, 그렇게 심도있게 배웠다는 생각이 없다. 물론 C에 대해서 잘 알기 전에 이 책으로 자료구조부터 배워서 그런지, 이 책을 처음 접할때는 뭔가 읽기도 난해했고, 재미없었던 기억이 난다. 그래도 알고리즘의 기초부터 구현까지 단계별로 설명한 좋은 책이었다고 생각한다...
리버스 엔지니어링(Reverse Engineering)이란 뭘까? 임베디드 개발을 얼마 해보진 않았지만, 그냥 나름대로 낸 생각으로는 만들어진 상태에서 어떤 과정을 거쳐 내부 동작 원리를 이해하고 분석하는 것이라고 생각한다. 물론 이게 처음 접하게 되면 무슨 내용인지 하나도 모른다. 그도 그럴게, 진짜 아무 툴도 없는 상태에서 동작원리를 알기란 쉽지 않기 때문이다. 그렇기 때문에 먼저 타겟 디바이스의 데이터 시트나 스펙을 읽고, 분석을 한다. 물론 운영체제와 같이 디바이스 상에서 돌아가는 SW의 형태도 분석하고, 그러고 나서 Trace32같은 하드웨어 디버거를 사용해서 실제 동작이 스펙에 나와있는 것과 같이 이뤄지는지를 확인하고 그 다음 과정을 거치곤 한다. 이런 모든 일련의 과정이 결국 디버깅이라는 게..
최근 IT 트랜드가 여러 갈래가 있겠지만, 그중에서도 핫한 주제를 꼽으라면 딥러닝이 아닐까 생각된다. 나도 회사에서 하는 일이 디바이스 드라이버나 운영체제를 다루는 일이긴 하지만, 일을 하면서도 어떻게하면 딥러닝이라는 주제를 우리가 하는 일에 접목시킬 수 있는가를 계속 고민하고 있다. 물론 쉬운 일은 아니지만... 사실 불가능한 일도 아니다. 이런 기계학습이라는 주제 자체가 축적된 데이터를 바탕으로 이뤄지는 것이기 때문에 우리쪽에서도 그런 데이터 쌓이는 분야만 잘 선정하면 되는 것이다. 그리고 생각보다 이런 주제를 다루는 곳이 온라인 상에 무척 많다. 온라인 강의만 놓고 봐도 입문용 강의 중 Andrew Eg 교수의 Machine Learning 이나 Abu-Mustafa 교수의 Learning from..
* 이 책은 베타 리딩을 목적으로 한빛미디어로부터 사전에 전달받은 후 읽은 책임을 알려드립니다. 내가 Unity를 처음 다뤄본건 2012년 Microsoft Imagine cup을 준비할 때이다. 생뚱맞게 준비에 필요한 Unity 라이선스와 키넥트용 asset을 주길래 몇달동안 이걸 사용해서 우리가 전달하려는 내용을 효과적으로 표현할 수 있을까 싶었다. 그래도 Unity가 참 편리한게 스크립트 부분과 씬 부분이 분리되어 있고, 사물 배치 같은 건 단순히 마우스 클릭만으로도 구현할 수 있었기 때문에 프로그래밍을 잘 못하는 나한테는 참 좋은 툴이었다. 다만 한계는 있었다. 아무래도 3D를 효과적으로 표현하기 위해서는 카메라의 시점이나, 사물의 배치같은 걸 전혀 고려하지 않고 보니까, 정말 어색했다. 말하자면..
요즘 회사에서 진행하는 소프트웨어 교육에선 임베디드 프로세서와 관련된 내용을 다루고 있다. 특히 요즘 많이 쓰고 있는 ARM cortex을 직접 조작하면서 LED나 DC motor 같이 주변기기를 직접 해보기도 하고, 프로세서내에 내장되어 있는 인터럽트 핸들러나, 타이머/카운터등을 직접 조작해보면서 과제에서 요구하는 요구사항들을 구현해보곤 했다. 사실 이 주제이전에 들었던 들었던 내용이 C Programming과 SW Engineering 쪽이었는데, 그때는 내가 원하는 함수나 기능은 그냥 구현하고 싶은대로 구현하고 잘 동작도 되었다. 그런데 이런 환경 자체가 임베디드로 넘어오면서 그대로 사용할 수도 없게 되었다. 우리가 일반적으로 쓰는 PC가 아닌, 제한된 자원과 기기들을 사용해서 원하는 기능을 구현해..
- Total
- Today
- Yesterday
- RL
- 파이썬
- 딥러닝
- Kinect SDK
- Distribution
- processing
- Expression Blend 4
- Offline RL
- 강화학습
- End-To-End
- Windows Phone 7
- Variance
- bias
- ColorStream
- SketchFlow
- Off-policy
- DepthStream
- TensorFlow Lite
- Policy Gradient
- windows 8
- PowerPoint
- reward
- 한빛미디어
- Kinect
- arduino
- Kinect for windows
- dynamic programming
- Gan
- Pipeline
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |