Group Study (2022-2023) 83

[Spring 심화] 3주차 스터디 - 3장 템플릿

템플릿이란? 변동성 있는 코드들 사이, 일정 패턴으로 유지되는 부분만 독립시켜 활용하는 방법 📌 예외상황 처리가 가능한 UserDao 코드 예외 발생 여부와 관계없이 썼던 리소스를 반환해야 하므로 JDBC 코드에서 예외처리는 필수원칙 JDBC 수정/조회 기능의 예외처리 코드 수정의 deleteAll() 에서 사용하는 리소스는 Connection, PreparedStatement 처리중 예외로 인해 close()가 실행되지 않아 풀로 리소스를 반환하지 못하는 경우를 대비 ⇒ try/catch/finally 구문 getCount() 메소드의 경우 리소스를 Connection, PreparedStatement, ResultSet을 사용 ⚠️ 아래의 문제점 - 모든 메소드마다 복잡한 try, catch, fin..

[Machine Learning] 3주차 스터디 - CNN의 이해(3)

CNN 경계를 잘 분류한다. 그 이상의 구체적인 분류도 가능하다. 그 경계 상자만 찾는 것이 아니라 모든 픽셀에 대한 레이블을 지정할 수도 있다. 얼굴 인식 가능, 포즈 인식 가능, 게임에서의 강화 학습에 사용된다. 의료 이미지의 해석 및 진단, 은하 분류, 거리 표지판 분류, 고래 인삭(Kaggle Challenage), 거리 분류, 사진을 찍고 특정 화가의 이미지로 다시 이미지화(Redraw)에도 사용된다. How CNN Works Fully Connected Layer(FC) 만약에 32 * 32 * 3 이미지가 들어왔을 때, 이를 3072차원의 벡터로 변경시킨다.이미지들의 픽셀들을 다 일렬로 나열시킨다고 볼 수 있을듯? 강의에서는 strectch to 3072 * 1이라고 표현. 그렇게 된다면 1..

[Algorithm] 3주차 스터디 - 스택

https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 오른쪽에서 바라보았을때 보이는 막대기의 수를 구하는 문제이다. 자신의 오른쪽에 있는 막대기 중 자신보다 높은 막대기가 하나도 없다면 그 막대기는 보일것이다. 즉, 현재 해당 막대기가 자신의 오른쪽에 있는 막대기의 최대값보다 크다면 그 막대기는 보인다. 따라서 주어진 막대기 높이들을 스택에 넣고 제일 상위에서 부터 (즉, 오른쪽 막대기부터) 하나씩 pop하여 현재 해당 막대기와 현재 까지의 막대기 최대값..

[Machine Learning] 3주차 스터디 - Softmax Regression

6-1) Softmax Regression: 기본 개념 소개 Logistic Regression H(x) = Wx 리턴 값이 실수이기 때문에 binaray classification에 적합하지 않음 g(z) = sigmoid (logistic) 함수를 통해 1과 0 사이로 값을 압축해서 변형 Multinomial Classification 여러개의 클래스가 존재 a or not a / b or not b / c or not c로 3번의 binary classification로 학습 가능 w를 하나로 합쳐서 하나의 행렬곱으로 만든다. 6-2) Softmax Classifier의 Cost 함수 다중 클래스 분류모델을 만들 때 사용하는 함수이다. Softmax 함수 Softmax 함수는 확률값으로 변환하기 때..

[Machine Learning] 4주차 스터디 - Application & Tips

Lec 7. Application & Tips 📖 Learning rate 데이터를 통해 model 생성 시 핵심 요소 Learning rate와 Gradient를 이용해 최적의 학습 모델 값 찾음 (cost가 최소가 되는 지점) Hyper parameter (사용자가 직접 세팅해 주는 값) 중 하나 어떤 optimizer를 통해 적용할지 선언할 때 learning_rate도 함께 지정함 [GradientDescentOptimizer(learning_rate= x.xx)] 적절하지 못한 크기의 learning rate (Step크기)는 최저 값을 얻기 어려움 → 너무 클 경우: overshooting (High) 발생 가능 → 너무 작은 경우: 시간 소요, local minimum에서 멈춤 ∴ 적절한 크..

[Node.js 입문] 3주차 스터디

노드의 동작원리 먼저 저번주에 자바스크립트의 동기와 비동기에 대해서 설명을 잘 해주셨는데, 조오금만 더 보충설명하고 싶어서 언급하려고 한다. 우선 Node = js Runtime(실행환경) 이다. 따라서 동기코드, 비동기 코드가 어떻게 실행되는지는 노드에서만의 방식이 아니라 js의 방식이고 마찬가지로 브라우저에서도 거의 유사한 방식으로 코드가 처리된다. 우선 알아야하는 노드(js 런타임)의 중요한 특징에 대해 꼽자면 싱글 스레드 Nonblocking I/O( 논블락킹 입출력) event-driven 방식 이 3가지이다. 아래의 이미지로 어떻게 노드가 동작하고 왜 위 3가지 특징이 생기는지 간략하게 설명하겠다. (노드로 더 깔끔한 이미지를 찾고 싶었는데, 안나온다. 어차피 js 실행환경이 노드니까 별 차이..

[React] 3주차 스터디 - (심화) Pure Redux(2): To-do List

1. Vanilla ToDo * 기능: 내용을 작성하고 Add 버튼을 누르면 ul 태그가 아래에 추가되는 투두리스트 index.html To Dos Add index.js import { createStore } from "redux"; const form = document.querySelector("form"); const input = document.querySelector("input"); const ul = document.querySelector("ul"); const ADD_TODO = "ADD_TODO"; const DELETE_TODO = "DELETE_TODO"; // Reducer: modify state const reducer = (state = [], action) => { /..

[React] 3주차 스터디 - (입문) React의 Hooks

Hook이란? 리액트의 state와 생명주기 기능에 갈고리를 걸어 원하는 시점에 정해진 함수를 실행할 수 있도록 만들어진 기능 훅을 통해 함수 컴포넌트에서 클래스 컴포넌트의 기능을 동일하게 구현 가능 이름은 모두 use로 시작 useState() 함수 컴포넌트에서 state를 사용하기 위한 훅 (원래는 클래스 컴포넌트에서만 제공) 변경하고자 하는 변수 각각에 대해 set 함수를 따로 생성 *사용법: const [변수명, set함수명] = useState(초깃값) import { useState } from "react"; export default function Counter(props) { const [count, setCount] = useState(0); return ( 총 {count}번 클릭했..

[Machine Learning] 2주차 스터디 - Multi variable linear regression & Logistic Regression

04 Multi-variable linear regression Hypothesis Cost function Matrix multiplication Hypothesis using matrix 앞 matrix의 열의 개수와 뒤 matrix의 행의 개수가 일치해야 함 Many x instances data의 instance가 많은 경우에도 동일하게 표현 가능 matrix를 쓰는 큰 장점 Hypothesis using matrix (n output) n은 instance의 개수, 2는 결과 값의 개수 이 때 W[?, ?] => [3, 2] WX vs XW Lecture (theory) Implementation (TensorFlow) 행렬 계산이기 때문에 Code import tensorflow as tf i..

[Spring 심화] 2주차 스터디 - 2장 테스트

테스트란? 테스트는 예상하고 의도했던 대로 코드가 정확히 동작하는지 확인해서, 만든 코드를 확신할 수 있게 해주는 작업으로 코드로 테스트가 수행되도록 하므로 자주 반복할 수 있고, 코드에 새로운 변경이 생겼을때 기존의 기능에 문제가 있는지 없는지 빨리 확인할 수 있다. 단위 테스트 작은 단위의 코드에 대해 테스트를 수행한것 작은 단위로 쪼개서 자신의 관심사에만 집중해서 테스트 ❓ 단위 테스트의 장점 각 작은 단위 별로 테스트하므로 오류의 원인을 찾기 쉽다. 확인의 대상과 조건이 간단할수록 좋다. JUnit 자바 테스팅 프레임워크, 자바를 단위 테스트로 만들때 유용하게 사용한다. 많은 테스트를 간단히 실행, 테스트 종합결과 확인, 테스트 실패한곳 빠르게 확인 등의 기능 제공한다. 메소드는 public으로 ..