전체 글

공부중인 학생입니다! 틀린점들 지적 부탁드립니다!
AI/Google ML Bootcamp

구글 머신러닝 부트캠프 1주차(4/4)

목차 Deep Neural Network 저번에는 Shallow Neural Network를 살펴봤는데, 이젠 좀 더 깊게 만들어보자 $$ L = 4 (#Layers) $$ $$ n^{[l]} = #units in layers l $$ $$ a^{[l]} = activation in layer l $$ $$ a^{[l]} = g^{[l]}(z^{[l]}) $$ Forward propagation in Deep Neural Network Building Blocs of Neural Network $$ Layer l : w^{[l]}, b^{[l]} $$ $$ Forward => Input: a^{[l-1]}, Output: a^{[l]} $$ $$ z^{[l]} = W^{[l]}a^{[l-1]} + b^{..

AI/Google ML Bootcamp

구글 머신러닝 부트캠프 1주차(3/4)

목차 Shallow Nueral Network 각 layer를 구분하기 위해 $$ a^{[l]} $$ 윗첨자를 붙여 구분한다. 각각의 유닛을 구분하기 위해 $$ a_{u} $$ 아랫첨자를 붙여 구분한다. 하나하나의 unit을 살펴보면 하나하나가 이렇게 구성되어있다. 하나하나의 unit이 각각 로지스틱 회귀를 구성하고 있다. Vectorizing 이것들을 벡터로 나타내면 다음과 같다. 이 하나하나의 훈련예제(training example)들을 한번에 계산 해 볼 것이다. 각각의 훈련예제는 윗첨자 (m)으로 구분한다. $$ z^{(m)} $$ Activation Function 입력을 변환해주는 함수 sigmoid function $$ A^{[l]} = \sigma(Z^{[l]}) $$ $$ a = \fra..

ETC

마크다운 태그 정리

목차 글 쓸 때마다 찾기는 싫어서 마크다운 문법은 많은데, 많이 쓰지는 않고, 그렇다고 일일이 찾아보기는 귀찮아서... 첫째, 제목(h 태그) h1, h2... 의 태그를 적용시켜준다. h1 h2 h3 h4 h5 h6 # h1 ## h2 ### h3 #### h4 ##### h5 ###### h6 둘째, BlockQuote 공식문서는 이렇던데, 그냥 부연설명느낌이다. 이런거다 이렇게 쑤면된다. > 이런거다 셋째, 목록 첫째 둘째 셋째 1. 첫째 2. 둘째 3. 셋째 쉽다 쉬워 만약 순서가 없는 목록이라면 기호 (*, -, +)를 사용한다. 첫째 둘째 셋째 첫째 둘째 셋째 첫째 둘째 셋째 * 첫째 * 둘째 * 셋째 + 첫째 + 둘째 + 셋째 - 첫째 - 둘째 - 셋째 첫째 둘째 셋째 * 첫째 - 둘째 + ..

OOP

추상클래스와 인터페이스 (2021.01.03)

목차 추상클래스, 인터페이스 너무도 헷갈리는 개념 둘이다. 사실 별로 크게 차이가 나지도 않긴 하지만. 일단 추상클래스가 무엇인지 알아보자. 추상클래스란 구현부가 없는 메서드가 하나 이상 있는 클래스를 추상 클래스라 한다. public class Keyboard{ private int keypressure; public abstract void Keydown(); public void turnOn(){ System.out.println(“turn On keyboard”); } } 이렇게 Keydown()메서드의 구현부가 없는 것. 이것이 추상클래스이다. 그럼 인터페이스는 무엇일까. 인터페이스는 너무 많은 의미로 쓰인다. 여기서는 객체지향 프로그래밍에서 사용하는 새로운 의미의 인터페이스 이다. 인터페이스는..

OOP

생성자 (2020.11.12)

목차 생성자 객체를 인스턴스화 할 때, 초기 상태를 지정해 주기 위해서 생성자 개념을 사용한다. 각 언어마다 생성자를 지정하는 방법이 다양한데, VisualBasic 에서는 New 키워드로, Swift는 init 키워드로, Java와 C#같은 경우에는 클래스의 이름과 동일한 메서드로 생성자를 지정한다. 우리는 계속 사용해오던 Java를 사용하여 알아보록 하자. 상속 Slime 클래스의 생성자를 만들어보자. public class slime{ private int hp; private int ATK; private int DEF; public slime(){ // 반환값이 없다! this.hp = 500; this.ATK = 30; this.DEF = 10; } public void tackle() /* ..

OOP

오버로딩, 오버라이딩 (2020.10.23)

목차 이름이 비슷비슷해서 공부할 때는 항상 헷갈렸던, 오버로딩과 오버라이딩을 설명해보겠다. 오버로딩(overloading) 오버로딩은 매개변수의 형식, 개수를 다르게 해서 메서드가 다양한 유형의 요청에 답할 수 있게 하는 것이다. 예를 들어서, 덧셈을 위한 메서드를 만들었다. public int sum(int A, int B); 이 메서드는 두 정수를 받아서 두 수의 합을 반환하게 되어있다. 그런데 사용자가 3개의 정수의 합을 구하고 싶다고 한다면 어떻게할까? 이런 경우, 아래와 같이 메서드를 새로 하나 더 만들면 된다. public int sum3(int A, int B, int C); 하지만, 사용자가 다시 실수의 합을 구하는 메서드를 요청한다면? 또 double형식의 함수를 하나 더 만들고, pub..

OOP

상속 (2020.10.17)

목차 상속 상속은 어떤 한 클래스의 속성과 메서드를 다른 클래스에서도 쓸 수 있게 하는 것이다. 예를 들어, 어떤 게임의 몬스터를 전부 만들게 되었다고 해보자. 모든 몬스터 전부 public class slime{ private int hp; private int ATK; private int DEF; public void tackle() /* 등등 */ } public class wolf{ private int hp; private int ATK; private int DEF; public void bite() /* 등등 */ } 만들고 보니 hp, ATK, DEF 등 슬라임과 늑대는 서로 공통적으로 가지는 속성들이 많다. 다른 몬스터들을 생각해봐도, 이 속성들은 가지고 있어야 몬스터라 부를 수 있다...

OOP

캡슐화 (2020.09.23)

목차 캡슐화 / Encapsulation 캡슐화는 데이터와 행위를 묶어 객체라는 형태로 만드는 것을 말한다. 앞서 말했던, 객체의 정의와 같다고 생각할 수 있다. 하지만, 캡슐화는 묶는 과정에서 속성(attribute), 메서드(method)를 외부로부터 감출 것인지, 공개할 것인지 설정할 수 있다는 것이 핵심이다. 바로 '데이터 은닉'기법이다. 데이터 은닉을 통해 감춰진 속성, 메서드는 외부에서는 접근할 수 없으며, 객체내부에서만 수정, 사용할 수 있다. 곡개하는 속성, 메서드는 'public' 접두어를, 비공개하는 속성 메서드는 'private' 접두어를 붙인다. 객체는 책임으로 이루어져있다. 우리는 어떤 객체에게 특정 행동을 기대하고, 객체를 만든다. 이때, 이 객체를 '1번객체'라고 하고, '2번..

OOP

객체지향이 무엇일까? (2020.09.09)

목차 객체지향의 개념 객체지향 프로그래밍은 객체가 상호작용하는 방식으로 프로그램을 만드는 방법이다. 이런 객체지향 프로그래밍은 캡슐화, 다형성, 상속이라는 특성이 있다. 이 특성들을 가지고 있지 않으면 객체지향 언어라고 불릴 수 없을 만큼 중요한 특성이다. 내가 공부해온 책에서는, 또 하나의 특성, '합성'을 더해 객체지향을 말한다. 그런 객체지향의 특성을 나열해보자면 캡슐화 다형성 상속 합성 이 되겠다. 객체지향 프로그래밍을 하기 전에, 일단 객체가 무엇인지 알아야 객체지향적이 무엇인지 알고 프로그래밍을 할 수 있지 않겠는가? 먼저 객체가 무엇인지 알아보도록 하자 객체란? 일단 책에서 말하는 객체의 정의를 보고 알아가자. '객체는 우리가 인식하는 모든 대상, 물체 등 객관적으로 인식할 수 있는 대상이다..

시유후
시유후의 개발일기