본문 바로가기
반응형

전체 글257

[클린코드] 1장 깨끗한 코드 이 책을 읽으면 좋은 코드와 나쁜 코드를 구분하는 능력과 나쁜 코드를 좋은 코드로 바꾸는 실력이 쌓이게 된다. 1) 코드가 존재하리라 앞으로 코드가 없어질 일은 없다. 코드는 요구사항을 표현하는 언어이기 때문. 2) 나쁜 코드 르블랑의 법칙(나중은 결코 오지 않는다. 나쁜 코드를 구현하면 나중은 오지 않는다.) 3) 나쁜 코드로 치르는 대가 나쁜코드가 쌓일수록 팀 생산성은 떨어지고, 그렇다고 인력을 추가하면 새 인력은 기존 시스템을 잘 모르기 때문에 도움이 되지 않는다. 이 상태에서 인력 추가가 되기 때문에 생산성은 높여야 하는 압력이 주어지지만 생산성은 점점 0이 된다. a. 원대한 재설계의 꿈 차세대 시스템과 기존 시스템의 경주. 기존 시스템이 엉망이면 차세대를 한다고 해도 기간이 길어지고 어려워진다.. 2023. 6. 20.
[밑시딥 1] CHAPTER 5 오차역전파법 오차역전파법을 제대로 이해하는 두 가지 방법 1. 수식을 통한 것 2. 계산 그래프를 통한 것 5.1 계산 그래프 5.1.1 계산 그래프로 풀다 문제 1 : 현빈 군은 슈퍼에서 1개에 100원인 사과를 2개 샀습니다. 이때 지불 금액을 구하세요. 단, 소비세가 10% 부과됩니다. 문제 2: 현빈 군은 슈퍼에서 사과를 2개, 귤을 3개 샀습니다. 사과는 1개에 100원, 귤은 1개 150원입니다. 소비세가 10%일 때 지급 금액을 구하세요. 계산 그래프를 이용한 문제 진행 흐름 1. 계산 그래프를 구성한다. 2. 그래프에서 계산을 왼쪽에서 오른쪽으로 진행한다. -> 순전파(forward propagation)라고 한다. 5.1.2 국소적 계산 국소적: '자신과 직접 관계된 작은 범위' 국소적 계산: 전체에.. 2023. 6. 18.
[밑시딥 1] CHAPTER 4 신경망 학습 학습이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것 신경망이 학습할 수 있도록 해주는 지표인 손실 함수에 대해 배운다. 4.1 데이터에서 학습한다! 데이터에서 학습한다는 것은 가중치 매개변수의 값을 데이터를 보고 자동으로 결정한다는 뜻이다. 4.1.1 데이터 주도 학습 '5'를 제대로 분류하는 프로그램을 직접 고안해 설계하기란 어렵다. 이미지에서 특징을 추출하고 그 특징의 패턴을 기계학습 기술로 학습시키는 방법을 사용할 수 있다. 다만 이때 그 특징은 여전히 사람이 설계해야 한다. 반면 신경망(딥러닝)을 활용하면 사람의 개입없이도 학습이 가능하다. 4.1.2 훈련 데이터와 시험 데이터 훈련 데이터(training data): 훈련데이터를 사용하여 학습하면서 최적의 매개변수(파라미터.. 2023. 6. 15.
[밑시딥 1] CHAPTER 3 신경망 3.1 퍼셉트론에서 신경망으로 3.1.1 신경망의 예 가장 왼쪽줄을 입력층, 맨 오른쪽 줄을 출력층, 중간 줄을 은닉층이라고 한다. 3.1.2 퍼셉트론 학습 위 그림은 x1, x2를 입력받아 y를 출력하는 퍼셉트론이다. 이를 수식으로 나타내면 다음과 같다. 여기서 b는 편향을, w1, w2는 각 신호의 가중치를 나타내는 매개변수로, 각 신호의 영향력을 제어한다. 그런데 위 그림에서 b가 보이지 않는다. 여기에 편향을 명시한다면 아래 그림과 같이 나타낼 수 있다. 위 식을 더 간결하게 표현해보자. 3.1.3 활성화 함수의 등장 위의 h(x)함수를 활성화함수(activation function)라고 한다. 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할. 위 식을 다시 써보면 아래와 같다. 그림으로 나.. 2023. 6. 13.
[밑시딥 1] CHAPTER 2 퍼셉트론 퍼셉트론은 1957년에 고안된 알고리즘이다. 이런 화석 같은 알고리즘을 왜 배우는가? 퍼셉트론이 딥러닝의 기원이 되는 알고리즘이기 때문이다. 2.1 퍼셉트론이란? 퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력한다. 그림의 원을 뉴런 혹은 노드라고 부른다. 입력 신호가 뉴런에 보내질 때는 각각 고유한 가중치가 곱해진다(w1, w2) 뉴런에서 보내온 신호의 총합이 임계값을 넘으면 1을 출력. 그 임계값은 세타로 나타낸다. 2.2 단순한 논리 회로 2.2.1 AND 게이트 AND 게이트 진리표 2.2.2 NAND 게이트와 OR 게이트 NAND 게이트 진리표 OR 게이트 진리표 2.3 퍼셉트론 구현하기 2.3.1 간단한 구현부터 AND 함수 구현 import numpy as np def AND(x1.. 2023. 6. 7.
[밑시딥 1] CHAPTER 1 헬로 파이썬 앞으로 파이썬을 사용하여 딥러닝 시스템을 구현할 것이기 때문에 파이썬에 대해 간략히 알아보자. 1.1 파이썬이란? 프로그래밍 입문자에게 최적의 언어 간단하고 배우기 쉬운 프로그래밍 언어 오픈 소스라 무료로 자유롭게 이용 가능 읽기 쉽고 성능도 뛰어남 과학 분야, 특히 기계학습과 데이터 과학 분야, 딥러닝 프레임워크 에서 널리 쓰임 Scipy, Caffe, TensorFlow, Chaner, Theano 딥러닝 프레임워크들이 파이썬용 API를 제공 -> 따라서 ‘딥러닝을 밑바닥부터 만들기’를 달성하기 위한 언어로 선택 1.2 파이썬 설치하기 1.2.1 파이썬 버전 파이썬 3을 설치하자 1.2.2 사용하는 외부 라이브러리 외부 라이브러리는 최소한만 사용해서 밑바닥부터 구현하는 것이 목표이지만, 두 라이브러리.. 2023. 6. 5.
[Introduction To Probability, Statistics, and Random Processes] 1.2 Review of Set Theory Introduction To Probability, Statistics, and Random Processes 교재를 공부하며 번역한 글입니다. 인프런 확률과 통계 기초강의를 수강하면서 참고했습니다. 1.2 Review of Set Theory 1.2.0 Review 확률 이론은 집합의 언어를 사용합니다. 나중에 살펴보겠지만 확률은 집합에 대해 정의되고 계산됩니다. 따라서 여기서는 이 책에서 사용되는 집합 이론의 몇 가지 기본 개념을 간략하게 검토하겠습니다. 집합 표기법, 정의, 연산(교집합과 합집합 등)에 대해 설명합니다. 그런 다음 셀 수 있는 집합과 셀 수 없는 집합을 소개합니다. 마지막으로 함수에 대해 간략하게 설명합니다. 이 섹션은 다소 이론적이어서 책의 나머지 부분보다 덜 흥미로워 보일 수 있.. 2023. 5. 5.
[Introduction To Probability, Statistics, and Random Processes] 1.1 Introduction Introduction To Probability, Statistics, and Random Processes 교재를 공부하며 번역한 글입니다. 인프런 확률과 통계 기초강의를 수강하면서 참고했습니다. 1.0 Introduction 이 장에서는 몇 가지 기본 개념과 정의를 제공합니다. 먼저 확률이 무엇인지에 대해 간략하게 설명합니다. 그런 다음 확률 이론을 발전시키는 데 필요한 몇 가지 수학적 기초를 검토합니다. 다음으로 무작위 실험의 개념과 확률의 공리에 대해 논의합니다. 그런 다음 이산 및 연속 확률 모델을 소개합니다. 마지막으로 조건부 확률에 대해 논의합니다. 1.1 Introduction 1.1.0 What Is Probability? 무작위성과 불확실성은 일상 생활은 물론 과학, 공학, 기술의 모.. 2023. 5. 3.
반응형