목차 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..
목차 추상클래스, 인터페이스 너무도 헷갈리는 개념 둘이다. 사실 별로 크게 차이가 나지도 않긴 하지만. 일단 추상클래스가 무엇인지 알아보자. 추상클래스란 구현부가 없는 메서드가 하나 이상 있는 클래스를 추상 클래스라 한다. public class Keyboard{ private int keypressure; public abstract void Keydown(); public void turnOn(){ System.out.println(“turn On keyboard”); } } 이렇게 Keydown()메서드의 구현부가 없는 것. 이것이 추상클래스이다. 그럼 인터페이스는 무엇일까. 인터페이스는 너무 많은 의미로 쓰인다. 여기서는 객체지향 프로그래밍에서 사용하는 새로운 의미의 인터페이스 이다. 인터페이스는..
목차 생성자 객체를 인스턴스화 할 때, 초기 상태를 지정해 주기 위해서 생성자 개념을 사용한다. 각 언어마다 생성자를 지정하는 방법이 다양한데, 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() /* ..