본문 바로가기

분류 전체보기84

SQL 레벨업 9장 , 10장 9장 갱신과 데이터 모델 26강 갱신을 효율적으로 1. NULL 채우기 UPDATE OmitTbl SET val = (SELECT val FROM OmitTblOT1 WHERE OT1.keycol = (SELECT MAX(seq) FROM OmitTbl OT2 WHERE OT2.keycol = OmitTbl.keycol AND OT2.seq < OmitTbl.seq AND OT2.val IS NOT NULL)) WHERE val IS NULL; OT2 테이블 스캔의 결과를 MAX 함수로 집약하고 OT1 테이블의 레코드를 특정 데이터 양이 늘어나면 기본 키 인덱스를 사용해서 풀 스캔보다 효율적으로 접근 2. 반대로 NULL을 설정 UPDATE OmitTbl SET val = CASE WHEN val = (.. 2023. 12. 2.
혼자 공부하는 머신러닝 + 딥러닝 9장 9-3 LSTM과 GRU셀 LSTM 셀: 타임스텝이 긴 데이터를 효과적으로 학습하기 위해 고안된 순환층, '입력 게이트, 삭제 게이트, 출력 게이트' 역할을 하는 작은셀이 포함되어 있음 LSTM 셀은 은닉 상태(Hidden state) 외에 셀 상태를 출력함, 셀 상태는 다음 층으로 전달되지 않으며 현재 셀에서만 순환됨 GRU 셀: LSTM 셀의 간소화 버전이지만, 못지않은 성능을 냄 LSTM 구조 (Long Short-Term Memory) LSTM 셀을 사용한 순환층 클래스 입력과 가중치를 곱하고 절편을 더해 활성화 함수를 통과시키는 구조를 여러개 가지고 있음. 계산 결과를 다음 타임스텝에 재사용 1. 은닉 상태 입력과 이전 타임스텍의 은닉 상태를 가중치에 곱한 후 활성화 함수를 통과시켜 다음 은닉 .. 2023. 11. 25.
SQL 레벨업 - 8장 23 강 레코드에 순번 붙이기 - 윈도우 함수 - 상관 서브 쿼리 -> 기능적으로 동일하지만, 성능 측면에서 윈도우 함수를 사용하는 편이 좋음. 윈도우 함수에서는 스캔 횟수가 1회임. 인덱스 온리 스캔을 사용하므로 테이블에 직접적인 접은을 회피함. 상관 서브커리를 사용하면 2회의 스캔이 발생함. 서브쿼리 보다는 윈도우 함수를 사용하는 것이 더 좋은 성능 기본키가 한 개의 필드일 경우 기본키가 여러 개의 필드일 경우 상관 서브쿼리의 경우 다중 필드 비교를 사용. 그룹마다 순번을 붙이는 경우 순번과 갱신 기존 테이블에 순번 필드를 추가하여 순번을 갱신하는 구문을 설명 1. 기본 키가 한 개의 필드일 경우 SELECT student_id, ROW_NUMBER() OVER (ORDER BY student_id).. 2023. 11. 25.
혼자 공부하는 머신러닝 + 딥러닝 8장 8-2 합성곱 신경망을 사용한 이미지 분류 패션 MNIST 데이터 불러오기 데이터 스케일을 0~255사이에서 0~1 사이로 바꾸고 훈련세트와 검증세트로 나눔 from tensorflow import keras from sklearn.model_selection import train_test_split (train_input, train_target), (test_input, test_target) = \ keras.datasets.fashion_mnist.load_data() train_scaled = train_input.reshape(-1, 28, 28, 1) / 255.0 입력 이미지는 항상 깊이(채널) 차원이 있어야함. Conv2D 층을 사용하기 위해 마지막에 채널 차원을 추가해야함 train_.. 2023. 11. 19.
SQL 레벨업 - 7장 21강 서브쿼리가 일으키는 폐해 1. 서브쿼리의 문제점: 실체적인 데이터를 저장하지 않음 - 연산 비용추가 실체적 데이터를 저장하고 있지 않아서, 서브쿼리에 접근할 때 마다 SELECT 구문 실행해야함. -> 복잡할수록 실행 비용이 더 높아짐 - 데이터 I/O 비용 발생 메모리 용량이 충분하지 않으면 오버헤드 발생. ( DBMS 가 저장소에 있는 파일에 결과를 쓸 수 있음) - 최적화 불가 서브쿼리로 만들어지는 데이터는 테이블과 차이가 없지만, 서브쿼리에는 메타 정보 (명시적 제약, 인덱스) 가 존재하지 않아서 옵티마이저 가 쿼리를 해석하기 위한 정보를 서브 쿼리에서 얻을 수 없음 2. 서브쿼리 의존증 고객의 구입 명세 정보를 저장하는 테이블(Receipts)에 순번(Seq 또는 AI idx) 필드는 오.. 2023. 11. 18.
혼자 공부하는 머신러닝 + 딥러닝 7장 7-1 인공신경망 뉴런(=유닛) : 인공 신경망에서 z값을 계산하는 단위 ex)z1~ z10 (z_티셔츠, z_바지... ) 출력층: z1~z10 을 계산하고 클래스를 예측하여, 신경망의 최종 값을 만듦 . 선형 계산만 발생 입력층: 인공 신경망에서 픽셀값 자체, 특별한 계산 하지않음 ex)x1~x784 (픽셀1,픽셀2 ...) 인공 신경망 모델 1. 텐서플로와 케라스 구글이 2015년 11월 오픈소스로 공개한 딥러닝 라이브러리 ; 인기가 제일 많음 from tensorflow import keras 텐서플로에는 저수준의 API / 고수준의 API (케라스;딥러닝 라이브러리) 포함 딥러닝 라이브러리 머신러닝 라이브러리와 달리 GPU(그래픽 처리 장치) 사용해 인공 신경망을 훈련 GPU는 벡터와 행렬 연산.. 2023. 11. 12.