2025/05 10

데이터베이스 언어 SQL

이 글은 데이터베이스 강의를 통해 만들어졌습니다. 1. SQL의 소개SQL(Structured Query Language)의미관계 데이터베이스를 위한 표준 질의어비절차적 데이터 언어발전 역사SEQUEL(Structured English QUEry Language)에서 유래=> SEQUEL: 연구용 관계 데이터베이스 관리 시스템인 SYSTEM R을 위한 언어미국 표준 연구소인 ANSI와 국제 표준화 기구인 ISO에서 표준화 작업을 진행=> 계속 수정 및 보완사용 방식대화식 SQL : 데이터베이스 관리 시스템에 직접 접근해 질의를 작성하여 실행삽입 SQL : 프로그래밍 언어로 작성된 응용 프로그램에 삽입 SQL의 분류 데이터 정의어(DDL)테이블을 생성하고 변경, 제거하는 기능을 제공데이터 조작어(DML)테..

데이터베이스 2025.05.19

규제 방법

이 글은 을 참고하여 만들어졌습니다.11.4 규제를 사용해 과대적합 피하기심층 신경망은 전형적으로 수만 개, 때로는 수백만 개의 파라미터를 가지고 있습니다. 이 때문에 네트워크의 자유도가 매우 높습니다. => 즉, 대규모의 복잡한 데이터셋을 학습할 수 있다는 뜻입니다. 하지만 이런 높은 자유도는 네트워크를 훈련 세트에 과대적합되기 쉽게 만듭니다. (즉, 규제가 필요합니다) 10장에서 이미 최상의 규제 방법 중 하나인 조기 종료를 구현했습니다.또한 배치 정규화는 불안정한 그레이디언트 문제를 해결하기 위해 고안되었지만 꽤 괜찮은 규제 방법으로도 사용할 수 있습니다.=> l1과 l2 규제, 드롭아웃(dropout), 맥스-노름(max-norm) 규제 11.4.1 l1과 l2 규제 간단한 선형 모델에 했던 것처..

딥러닝 2025.05.18

고속 옵티마이저

이 글은 을 참고하여 만들어졌습니다.11.3 고속 옵티마이저아주 큰 신경망의 훈련 속도는 심각하게 느릴 수 있습니다.지금까지 훈련 속도를 높이는 네 가지 방법에 대해 살펴봤습니다.좋은 초기화 전략 적용하기좋은 활성화 함수 사용하기배치 정규화 사용하기사전 훈련된 네트워크의 일부 재사용하기훈련 속도를 크게 높일 수 있는 방법은 더 빠른 옵티마이저를 사용하는 것입니다.ex. 모멘텀 최적화(momentum optimization), 네스테로프 가속 경사(Nesterov accelerated gradient), AdaGrad, RMSProp, Adam, Nadam 옵티마이저 11.3.1 모멘텀 최적화공을 굴릴때 처음에는 느리지만 종단속도(저항 때문에 등속도 운동을 하게 될때의 속도)에 도달할 때까지 빠르게 가속..

딥러닝 2025.05.13

Spring 3주차(게시판 기능 수정하기)

이 글은 3판을 참고하여 만들어졌습니다.2-11 URL 프리픽스 알아 두기⇒ 질문 상세 페이지에서 답변을 입력할 수 있도록 프로그램을 만들어 보자.QuestionController.java에는 다음 2개의 URL 매핑되어 있다.@GetMapping(”/question/list”)@GetMapping(value=”/question/detail/{id}”)⇒ URL 매핑 시 value 매개변수는 생략할 수 있다.URL의 프리픽스가 모두 /question으로 시작한다는 것을 알 수 있다.프리픽스(prefix)란? URL의 접두사 또는 시작 부분을 가리키는 말QuestionController에 속하는 URL 매핑은 항상 /question 프리픽스로 시작하도록 설정할 수 있다.QuestionController ..

Spring Boot 2025.05.11

전이 학습과 비지도 사전훈련

이 글은 을 참고하여 만들어졌습니다.11.2 사전훈련된 층 재사용하기일반적으로 아주 큰 DNN을 처음부터 새로 훈련하는 것은 좋은 생각이 아닙니다. 해결하려는 것과 비슷한 유형의 문제를 처리한 신경망이 이미 있는지 찾아본 다음, 그 신경망의 하위층을 재사용하자.=> 이를 전이 학습(transfer learning)이라고 한다.이 방식은 훈련 속도를 크게 높일뿐만 아니라 필요한 훈련 데이터도 크게 줄어듭니다. 동물, 식물, 자동차, 생활용품을 포함해 카테고리 100개로 구분된 이미지를 분류하도록 훈련한 DNN이 있다고 가정합시다.이런 작업들은 비슷한 점이 많고 심지어 일부 겹치기도 하므로 첫 번째 신경망의 일부를 재사용해봐야 합니다. 보통 원본 모델의 출력층을 교체.=> 이 층이 새로운 작업에 가장 유용하..

딥러닝 2025.05.08

그레이디언트 소실과 폭주 문제

이 글은 을 참고하여 만들어졌습니다.CHAPTER 11. 심층 신경망 훈련하기CHAPTER10까지는 몇 개의 은닉층만으로 이루어진 얕은 네트워크.고해상도 이미지에서 수백 종류의 물체를 감지하는 것처럼 아주 복잡한 문제를 다뤄야 한다면 어떻게 해야 할까요?=> 더 깊은 심층 신경망을 훈련but 문제가 발생한다.까다로운 그레이디언트 소실 또는 그레이디언트 폭주 문제에 직면.=> 심층 신경망의 아래쪽으로 갈수록 그레이디언트가 점점 작아지거나 커지는 현상대규모 신경망을 위한 훈련데이터가 충분하지 않거나 레이블을 만드는 작업에 비용이 너무 많이 든다.훈련이 극단적으로 느려짐수백만 개의 파라미터를 가진 모델은 훈련 세트에 과대적합 가능성이 상당히 높다.=> 특히 훈련 샘플이 충분하지 않거나 잡음이 많은 경우이 해결..

딥러닝 2025.05.07

테스트 주도 개발하기

이 글은 을 참고하여 만들어졌습니다.1. 테스트 주도 개발이란?테스트 주도 개발(Test driven development, TDO)은 일종의 개발 방식 또는 개발 패턴을 의미합니다.무언가를 개발할 때 바로 개발부터 하는 것이 아니라 개발하려는 항목에 대한 점검 사항을 테스트 코드로 만들고 그 테스트를 통과시키는 방식으로 개발을 진행하는 방식입니다. 테스트 주도 개발을 왜 적용할까?구현 : 만들고 싶은 요소를 떠올리고 소스 코드를 작성합니다.웹 브라우저로 직접 확인 : 웹 브라우저로 들어가서 잘 작동하는지 일일이 테스트합니다.성공: 제대로 작동하지 않으면 다시 소스 코드를 들여다보고 수정하면서 성공시킵니다.개선점 찾기: 다음에는 무엇을 더 개선해야 할지, 무엇을 개발해야 할지 고민을 한 후 다시 구현해 ..

Django 2025.05.05

신경망 하이퍼파라미터 튜닝하기

이 글은 (2판)을 참고하여 만들어졌습니다. 3. 신경망 하이퍼파라미터 튜닝하기신경망의 유연성은 단점이기도 합니다. => 조정할 하이퍼파라미터가 많기 때문입니다.아주 복잡한 네트워크 구조에서뿐만 아니라 간단한 다층 퍼셉트론에서도 층의 개수, 층마다 있는 뉴런의 개수, 각 층에서 사용하는 활성화 함수, 가중치 초기화 전략 등 많은 것을 바꿀 수 있습니다.어떤 하이퍼파라미터 조합이 주어진 문제에 최적일까요?? 한 가지 방법은 많은 하이퍼파라미터 조합을 시도해보고 어떤 것이 검증 세트에서(또는 K-폴드 교차 검증으로) 가장 좋은 점수를 내는지 확인하는 것이다.ex. GridSearchCV나 RandomizedSearchCV를 사용해 하이퍼파라미터 공간을 탐색할 수 있습니다.이렇게 하려면 케라스 모델을 사이킷런..

딥러닝 2025.05.04

케라스 딥러닝 모델링 A to Z: 설계, 저장, 콜백 활용까지

이 글은 을 참고하여 만들어졌습니다.2.3 시퀀셜 API를 사용하여 회귀용 다층 퍼셉트론 만들기사이킷런의 fetch_california_housing() 함수를 사용해 데이터를 적재하겠습니다. 이 데이터셋은 수치 특성만 있으므로 간단합니다(ocean_proximity 특성이 없습니다).데이터를 적재한 후 훈련 세트, 검증 세트, 테스트 세트로 나누고 모든 특성의 스케일을 조정합니다.from sklearn.datasets import fetch_california_housingfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerhousing = fetch_california_ho..

딥러닝 2025.05.03

시퀀셜 API를 사용하여 이미지 분류기 만들기

이 글은 에 의해 만들어졌습니다.2. 케라스로 다층 퍼셉트론 구현하기케라스는 모든 종류의 신경망을 손쉽게 만들고 훈련, 평가, 실행할 수 있는 고수준 딥러닝 API입니다.API 문서(또는 명세) : http://keras.io케라스의 참조 구현은 2015년 3월에 오픈소스로 공개되었습니다. (다양한 유연성과 아름다운 디자인)이 참조 구현은 계산 백엔드(backend)에 의존하여 신경망에 필요한 많은 연산을 수행합니다.인기 있는 3가지 딥러닝 라이브러리 중에서 백엔드를 선택이 가능합니다.텐서플로마이크로소프트 코그니티브 툴킷(Microsoft Cognitive Toolkit)(CNTK)시애노2016년 후반부터 다른 구현이 릴리스되기 시작했습니다.지금은 아파치(Apache) MXNet, 애플의 Core ML,..

딥러닝 2025.05.01