목록전체 글 (10)
huskycat1202
이 글은 '밑바닥부터 시작하는 딥러닝' 이란 책으로 공부하며 작성했다. 4.1 데이터에서 학습한다. 학습: 훈련 데이터로 가중치 매개변수의 최적값 자동 획득 퍼셉트론 수렴 정리 : 선형 분리 기능 문제는 유한 번의 학습으로 해결 가능. 단 비선형은 자동 학습 불가. 머신러닝 알고리즘을 설계하는 것보다 데이터의 feature를 추출, 그 패턴을 학습시키는 방법을 사용한다. ex) SVM, KNN feature: 입력데이터에서 중요데이터 추출하는 변환기. 벡터의 형식. ex) SIFT, SURF, HOG 훈련데이터로 학습, 최적의 매개변수 도출. 오버피팅(한 데이터셋에만 치우침)은 막을 것 시험데이터로 실습 -> 범용능력으로 미지의 데이터도 처리할 수 있게 신경망,딥러닝은 머신러닝처럼 수집한 데이터로 패턴 ..
이 글은 '밑바닥부터 시작하는 딥러닝' 이란 책으로 공부하며 작성했다. 저번에 github 저장소를 못 찾아 진행하지 못한 손글씨 숫자 인식 실습을 진행하려고 한다. 1. MNIST 데이터셋 준비 MNIST 데이터셋을 다운받아 이미지를 numpy 배열로 변환하는 python 스크립트를 사용한다. ch03의 부모 디렉터리에 저장한 아래 코드를 python3로 실행한다. github.com/WegraLee/deep-learning-from-scratch/blob/master/dataset/mnist.py WegraLee/deep-learning-from-scratch 『밑바닥부터 시작하는 딥러닝』(한빛미디어, 2017). Contribute to WegraLee/deep-learning-from-scratc..
이 글은 '밑바닥부터 시작하는 딥러닝' 이란 책으로 공부하며 작성했다. 3.1 퍼셉트론에서 신경망으로 은닉층: 사람의 눈에 보이지 않는 뉴런으로 구성 편향의 입력 신호는 항상 1이다. (항상 입력된다.) 활성화 함수: sum(입력신호)->출력신호, 활성화되는지 결정 단순 퍼셉트론: 단층 네트워크에서 계단함수로 활성화 결정 다층 퍼셉트론: 신경망. 시그모이드 함수 등 부드러운 활성화 함수 사용 3.2 활성화 함수 계단 함수: 임계값 경계로 출력 변화. #-*- coding:utf-8 -*- # 코드 내 한글이 있을 경우 에러가 발생해 위 코드를 추가한다. import numpy as np import matplotlib.pyplot as plt # 데이터 준비 def step(x): return np.ar..
이 글은 '밑바닥부터 시작하는 딥러닝' 이란 책으로 공부하며 작성했다. 2.1 퍼셉트론이란? 퍼셉트론: 다수 신호를 입력받아 하나 신호 출력 퍼셉트론 신호: 흐르는 정보. 흐른다(1)/안 흐른다(0). '뉴런이 활성화한다': 뉴런에서 보낸 신호의 총합이 임계값(θ)을 넘으면 1을 출력한다. 뉴런의 가중치↑ 신호의 중요도↑ (저항↓) 2.2 단순한 논리 회로 AND 게이트: 입력 2, 출력 1. 둘 다 1이면 1 출력. x1 x2 y 0 0 0 0 1 0 1 0 0 1 1 1 위를 만족하려면 θ>0, x1≤θ, x2≤θ, x1+x2>θ이여야 한다. NAND 게이트: AND의 반대. x1 x2 y 0 0 1 0 1 1 1 0 1 1 1 0 위를 만족하려면 AND의 반대인 θθ, x2>θ, x1+x2 0, x..
이 글은 '밑바닥부터 시작하는 딥러닝' 이란 책으로 공부하며 작성했다. 1.1 파이썬이란? 파이썬은 오픈소스이며, 영어와 유사한 문법을 갖고 있다. 또한 빠르고 쉽게 코딩할 수 있다. 특히 파이썬은 기계학습, 데이터 과학에 쓰인다. 딥러닝 프레임워크에서 제공하는 API를 통해 딥러닝도 가능하다. 1.2 파이썬 설치하기 파이썬에는 버전 2, 3이 있는데, 파이썬3의 코드를 파이썬2에서 실행하지 못한다. 앞으로 공부하며 사용할 외부 라이브러리는 NumPy, matplotlib이다. NumPy는 수치 계산용 라이브러리로, 수학 알고리즘과 배열(행렬)을 다룰 수 있는 method가 있다. matplotlib는 그래프 작성 라이브러리로, 실험결과나 딥러닝 실행 중간과정의 시각화가 가능하다. 이 책으로 공부하며 사..
1. publisher.cpp#include #include #include #include int main(int argc, char** argv){ ros::init(argc, argv, "image_publisher"); ros::NodeHandle nh; image_transport::ImageTransport it(nh); //이미지 형태 변환 image_transport::Publisher pub = it.advertise("image", 1); cv::Mat image = cv::imread(argv[1], cv::IMREAD_COLOR); sensor_msgs::ImagePtr msg = cv_bridge::CvImage(std_msgs::Header(), "bgr8", image).toI..
1. talker.cpp (publisher node) #include "ros/ros.h" #include "std_msgs/String.h" #include ROS 사용에 필요한 헤더파일 sstream: C++ 프로그래밍 언어 표준 라이브러리의 일부 int main(int argc, char **argv) argc: main에 전달된 인자의 개수 argv: 가변적인 개수의 문자열 ros::init(argc, argv, "talker"); ros::NodeHandle n; ros::Publisher chatter_pub = n.advertise("chatter", 1000); ros::Rate loop_rate(10); 노드 초기화, 기본 이름=talker 노드 핸들 설정 publisher 선언, 토픽..
CMake : Linux에서 C++을 사용하기 위해 필요한 Make와 Makefile을 만들어 주는 툴. 각 소스의 내용 파악, 의존성 관계 정리, Makefile의 추상화를 통해 Makefile 관리. CMake 명령어 -> CMake 최소 버전, 프로젝트(패키지) 이름 설정 빌드에 필요한 패키지 탐색 ROS 메시지, 서비스, 액션 생성. 메시지 사용시 package.xml 에서 'message_generation'을 build dependency 로, 'message_runtime'을 runtime dependency 로 추가. 사용할 메시지 타입 추가 CATKIN_DEPENDS: 패키지가 의존하는 타 catkin project actionlib_msgs: action server, action cl..