[책 리뷰] 완벽한 공부법: 모든 공부의 최고의 지침서

이미지
서평  참 활용하기 나름인 책 같다. 단순히 학교 공부, 영어 공부가 아닌 범용적인 공부 혹은 진짜 공부를 하는 방법에 대한 지침을 알려주는 책 같다. 나 자신에 대한 믿음을 갖는 심리적인 요인 부터, 내자신의 심리 상태를 다스릴 수 있는 심리적인 요인, 공부한 것을 기억하는 방법 그리고 그것을 활용하는 방법에 이르는 모든 과정에 대한 지침을 해주는 책이다.  기존의 책 같은 경우는 동기부여, 학습방법, 목표 설정 이런것들에 포커스가 맞춰져 있는 것으로 기억한다. 하지만 이 책은 기존의 공부법 책에서는 볼 수 없었던 사회성, 감정과 같은 영역까지 다루면서 어느하나 버릴게 없는 챕터로 구성되어 있다. 그리고 그 학습한 내용을 적용 시킬 수있는 분야인 영어 공부법과 회사 생활에 대한 지침까지 다루고 있다는 점이 인상적이다. 막 사회생활을 시작한 나에게 있어 앞으로 발전을 하기 위해 필요한 것이 무엇인지 스스로 되짚어보는 시간이 되었던것 같다. 요약  책의 첫 장은 자신이 할 수 있다는 믿음을 가지라는 내용이다. 단순히 믿음을 가지세요 라는 말을 하는 것이 아니라 자신에 대한 믿음을 갖기 위한 방법을 말해주고 있는데 그 방법은 작은 성취를 통해 믿음을 갖는 것이다. 작은 일을 하고 성취를 이루면 그 정도의 일은 할 수 있다는 자신감이 생긴다. 그러면서 점점 큰 일을 성취를 하면 무엇이든 할 수 있다는 자신감을 갖게된다는 뜻이다. 크던 작던 누구나 무언가를 성취해 본 경험이 있을 것이다. 그리고 어떤일이던 간에 그 성취감은 언제나 뿌듯했을거라고 생각한다. 물론, 중요한 성과를 달성했을 때 더 기쁘기는 할 것이다. 첫 술에 배부를 수는 없기 때문에 작은 일부터 하나하나 해나가면서 점점 큰 성과를 거두며 자신에 대한 믿음을 갖는 것이 첫 번째 단계라고 이 책에 나와있다.  두 번째는 나에 대한 인지이다. 내가 무엇을 알고, 무엇을 모르는지에 대해 파악하는 것, 이것을 이 책에서는 '메타 인지'라고 ...

[번역] National Artificial Intelligence Research and Development Strategic Plan

2016년 10월에 발표된 National Artificial Intelligence Research and Development Strategic Plan 보고서의 Executive Summary 부분을 구글번역기로 번역한 후, 교정한 자료입니다. --------------------------------------------------------------------------------------------- 인공 지능은 엄청난 사회적 경제적 이익을 약속하는 혁신 기술입니다 . 인공 지능은 우리가 살아가고 , 일하고 , 배우고 , 발견하고 , 의사 소통하는 방식에 혁명을 일으킬 잠재력이 있습니다 . 인공 지능 연구는 경제적 번영의 증진 , 교육의 기회와 삶의 질 향상 , 국가 및 국토 안보의 강화 등 우리의 국가 우선 순위를 더욱 높일 수 있습니다 . 이러한 잠재적 이익 때문에 미국 정부는 수년간 인공 지능 연구에 투자 해 왔습니다 . 그러나 연방 정부가 관심을 갖는 중요한 기술과 마찬가지로 엄청난 기회뿐만 아니라 인공 지능에 대한 연방 기금 연구 개발의 전반적인 지침을 수립 할 때 고려해야 할 여러 가지 고려 사항이 있습니다 . 2016 년 5 월 3 일 , 행정부는 AI 의 연방 활동을 조정할 수 있도록 기계 학습 및 인공 지능에 관한 새로운 NSTC 소위원회를 구성한다고 발표했습니다 . 이 소위원회는 2016 년 6 월 15 일 네트워킹 및 정보 기술 연구 소위원회 및 개발 (NITRD) 을 통해 국가 인공 지능 연구 및 개발 전략 계획을 수립했습니다 . 인공 지능에 관한 NITRD 태스크 포스는 AI R& 에 대한 연방의 전략적 우선 순위를 정의하기 위해 형성되었으며 산업계에서는 다루기 힘든 분야에 특히 주의를 기울였습니다 . 이 National Artificial Intelligence R&D Strategic Plan 은 연방 정부의 자금 지원을 받는 인공 지능 연구의 목표를 수립합니...

Grub 부트로더 복구하는 방법

리눅스를 설치하고 지우면서 boot하면 가끔 당하는 grub rescue> 막막합니다. 그럴때 boot rescue나 Live CD를 쓰지 않고 간단히 해결하는 방법 grub rescue>  ls 그럼 partition들을 다 보여 줍니다. (hd0) (hd0,msdos2) (hd0,msdos1) 근데 어떤 놈 일까요? grub rescue> ls (hd0,msdos2)/ grub rescue>  ls (hd0,msdos1)/ 이런식으로 하나씩 내용을 보면  ext4 중  /lost+found     /sys      /bin  /boot .... /usr 요렇게 partition의 ls가  놈이 나오는게 있습니다. (hd0,msdos2) 이 고놈이라고 치면 # 아래 msdos를 빼고 한다는 걸 까먹으면 도루묵! grub rescue>  set prefix= (hd0,2) /boot/grub grub rescue>  set root=(hd0,2) grub rescue>  insmod normal grub rescue>  normal 다 치고 나면 리눅스가 정상으로 시작 됩니다. 그럼 안도의 한숨 내쉬고 Shell 을 연 다음  $ sudo update-grub $ sudo grub-install /dev/sda 출처 - http://linuxmint.kr/4082

Linux 컨테이너

이미지
 향상된 컴퓨터의 성능으로 인해 그 성능을 더 효율적으로 사용하기 위한 가상화라는 단어가 친숙해졌습니다.  처음에는, 가상화 기술을 사용하기 위해여 KVM, VMWARE 같은 하이퍼바이저를 사용하는 기술을 사용하였지만, 최근에는 Docker로 대표되는 리눅스 컨테이너(LXC)와 같은 컨테이너 형 가상화 기술을 이 더 각광받고 있습니다.  컨테이너형 가상화 기술은 기존 기술보다 더 가볍고, 이식성이 뛰어난 특징을 가지고 있습니다. 그리고 '가상화'라기 보단 '격리'라는 개념에 더 가깝다고 합니다. (말그대로 컨테이너안에 가둔다는 것 같습니다.) 리눅스 컨테이너를 살펴보면 OS 내부는 물리적 자원을 관리하는 "커널 공간"과 애플리케이션을 실행하는 "사용자 공간"으로 나누어집니다. 컨테이너형 가상화 기술은 사용자 공간(User space)를 나누어 각각의 사용자 프로세스에서 보이는 리소스를 제한하는 방법입니다. 1. LXC (Linux Container)란? LXC (LinuX Containers)는 단일 컨트롤 호스트 상에서 여러개의 고립된 리눅스 시스템 (컨테이너)들을 실행하기 위한 운영 시스템 레벨 가상화 방법이다.  리눅스 커널은 cgroups를 절충하여 가상화 머신을 시작할 필요 없이 자원 할당 (CPU, 메모리, 블록 I/O, 네트워크 등)을 한다. Cgroups는 또한 애플리케이션 입장에서 프로세스 트리, 네트워크, 사용자 ID, 마운트된 파일 시스템 등의 운영 환경을 완전히 고립시키기 위해 namespace isolation을 제공한다.  LXC는 cgroups와 namespace를 결합하여 애플리케이션을 위한 고립된 환경을 제공한다. Docker 또한 실행 드라이버의 하나로 LXC를 사용할 수 있으며 이를 통해 이미지 관리와 개발 서비스를 제공한다.  - 위키피디아  2. 기존 가상화 기술과 LXC의 차이점 ...

[머신러닝] Deep Learning Tutorials

이 글은 http://deeplearning.net/tutorial/index.html의 내용을 공부목적으로 번역한 것입니다. 번역이 이상할 수 있고 필요한 내용만 번역되어 있을 수 도 있습니다. -------------------------------------------------------------------------------------------------------------------------------------  딥러닝은 머신러닝의 원래 목표중 하나인 인공지능으로 다가게하는 목적으로 소개된 머신러닝 연구의 새로운 분야다.  딥러닝은 이미지, 소리 그리고 텍스트와 같은 데이터들의 이해를 돕는 다양한계층의 표현과 추상적 개념에 대한 학습이다. 딥러닝 알고리즘에 대한 예제를 보고싶으면 다음을 예를 보면 된다 : The monograph or review paper  Learning Deep Architectures for AI  (Foundations & Trends in Machine Learning, 2009). The ICML 2009 Workshop on Learning Feature Hierarchies  webpage  has a  list of references . The LISA  public wiki  has a  reading list  and a  bibliography . Geoff Hinton has  readings  from 2009’s  NIPS tutorial .  여기있는 튜토리얼들은 가장 중요한 몇개의 딥러닝 알고리즘과 그것을  Theano 를 이용해 어떻게 작동시킬것인지 소개할 것이다. Theano는 딥러닝 모델을 쉽게 배울수 있게하고 그것들을 GPU에서 훈련시킬수 있도록 선택할 수 있는 파이썬 라이브러...

[머신러닝] CNN(Convolution Neural Network)

이미지
Why CNN?  이미지 인식과 같은 분야에서 MLP(Multi-Layer Perceptron) 또는 multi-layered neural network를 사용하게 되면 MLP는 모든 입력이 위치와 상관없이 동일한 수준의 중요도를 갖는다고 본다. 그렇기 때문에 이를 이용해 fully-connected neural network를 구성하게 되면 파라미터의 크기가 엄청나게 커지는 문제가 생긴다. 이에 대한 해결책으로 탄생한 것이 바로 CNN이다. Receptive Field  수용영역이란 외부 자극이 전체 영향을 끼치는 것이 아니라 특정 영역에만 영향을 준다는 뜻이다. 손가락으로 몸의 여러 부분을 찔러 보았을 때 그것을 느낄 수 있는 범위가 제한적이라는 것을 생각하면 될 것이다. 그리고 어디를 찌르느냐에 따라 느끼는 영역의 크기가 다를 것이다.  마찬가지로 영상에서 특정 위치에 있는 픽셀들은 그 주변에 있는 일부 픽셀들 하고만 correlation이 높고 거리가 멀어질수록 그 영향은 감소하게 된다. 이를 이용해 영상이나 이미지를 해석하여 "인식 알고리즘"을 수행하고자 할 경우 영상 전체 영역에 대해 서로 동일한 중요도를 부여하여 처리하는 대신에 특정 범위를 한정해 처리를 하면 훨씬 효과적일 것이라 짐작 할 수 있다. 이를 영상에만 한정하는 것이 아니라 locality를 갖는 모든 신호들에 유사하게 적용할 수있다는 아이디어에 기반하여 출현한 것이 CNN이다. convolution이란?  영상 처리 분야에서 convolution은 주로 filter 연산에 사용되며 영상으로부터 특정 feature들을 추출하기 위한 필터를 구현할 때 convolution을 사용한다. 즉 3 by 3 또는 그 이상의 window 혹은 mask를 영상 전체에 대해 반복적으로 수행을 하게 되면, 그 mask의 계수 값들의 따라 적정한 결과를 얻을 수 있다.  아래 그림을 보면 왼쪽...

[데이터 분석] 데이터 준비하기 : 다듬기, 변형, 병합

이미지
 미국 농무부는 음식의 영양소 정보 데이터베이스를 제공하고 있습니다. 영국 해커 애슐리 윌리엄스는 이 데이터베이스를 Json 형식으로 웹사이트 ( http://ashleyw.co.uk/project/food-nutrient-database )에 제공하고 있습니다.  각 음식에는 수자로 된 고유 ID와 영양소 및 제공량을 담고 있는 두 가지 리스트가 있으나 이 데이터 형식은 분석하기 좋지 않으므로 데이터 형식을 바꿔 보도록 하겠습니다.   웹사이트에서 데이터를 내려받은 다음 압축을 해제하고 선호하는 JSON 라이브러리를 사용해서 파이썬에 읽어오도록 하겠습니다.  db에 있는 각 엔트리는 한 가지 음식에 대한 모든 정보를 담고 있는 사전형입니다. 'nutrients' 필드는 사전의 리스트이며 각 항목은 한 가지 영양소에 대한 정보를 담고 있습니다.  사전의 리스트를 DataFrame으로 바꿀 때 추출할 필드의 목록을 지정해줄 수 있습니다. 음식의 이름과 그룹, id 그리고 제조사를 추출해 보도록 하겠습니다.  그리고 value_counts 메서드를 이용해서 음식 그룹의 분포를 확인해 볼 수 있습니다.  이제 모든 영양소 정보를 분석해 보도록 하겠습니다. 먼저 더 쉽게 분석을 하기 위해 각 음식의 영양소 정보를 하나의 테이블에 담아보겠습니다. 그러기 위해서는 몇 가지 과정을 거쳐야 하는데 먼저 음식의 영양소 리스트를 하나의 DataFrame으로 변환하고 음식의 id를 위한 칼럼을 하나 추가합니다. 그리고 이 DataFrame을 리스트에 추가합니다. 마지막으로 이 리스트를 concat 메서드를 사용해서 하나로 합쳐보겠습니다.  문제가 없다면 nutrients는 다음과 같을 것입니다.   총 389355개의 데이터가 있습니다. 하지만 이 DataFrame에는 중복된 데이터가 있으므로...