일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- linux
- javascript
- docker
- nodejs
- 블레이드 템플릿
- Backbone.js
- NCP
- Redux
- webpack
- rabbitmq
- Babel
- deep learning
- php
- Node
- Switch
- python
- CentOS
- SQL
- For
- laravel
- 기초 수학
- fastapi
- AWS
- Go
- React
- phpredis
- Machine Learning
- mariadb
- Redis
- nginx
- Today
- Total
목록분류 전체보기 (189)
개발일기
데이터를 모델에 주입하기 전에 데이터를 가공하는 데이터 전처리 단계를 거쳐야 한다. 전처리를 통해 입력 데이터를 효율적으로 처리할 수 있게 할 수 있다. 데이터 전처리가 이뤄지지 않으면 학습 성능이 저하되거나 학습 도중에 문제가 발생할 수 있다. tensorflow에서는 map, shuffle, batch, cache, prefetch와 같은 데이터 전처리에 필요한 함수를 제공한다. 또한 연산이 효율적으로 처리될 수 있게 최적화 기능을 지원한다. 1. 전처리 함수map(): 데이터셋의 각 요소에 사용자 정의 함수를 적용하는데 사용된다. 예를 들어 입력 데이터를 정규화하는 사용자 함수를 정의하여 map() 메서드에서 사용할 수 있다.num_parallel_calls: 이 옵션에 AUTOTUNE을 적용하여 ..
모델의 과대적합을 방지하기 위해 사용하는 기법이다. 모델의 층이 넓고 깊어지면 훈련용 데이터를 과도하게 적합하여 학습하는 경향이 있다. 이를 바탕으로 학습된 모델은 훈련할 때 만나지 못한 새로운 데이터를 만났을 때 낮은 예측력을 보이게 된다. 이를 바탕으로 훈련 데이터에 너무 익숙하지 않도록 몇몇 노드는 학습에서 제외시키는게 드롭아웃이다. 지정한 확률을 바탕으로 일부 노드의 연결을 끊어 모델이 학습하는 가중치 파라미터의 개수를 줄어들게 하여 과대적합을 방지한다. 이를 토대로 훈련 과정에서는 몇몇 노드만 학습시키지만 검증 시점에서는 모든 노드를 활용하여 검증을 진행한다. 드롭아웃을 적용하지 않은 뉴런은 왼쪽과 같이 모든 노드가 연결되어 있다. 하지만 드롭 아웃을 적용하면 몇몇 노드의 연결이 끊어져 연결되어..
List Comprehension은 리스트를 새로 생성할 때 사용하는 방법 중 하나이다. 반복문과 조건문을 결합하여 한 줄의 코드로 리스트를 생성할 수 있는 장점을 가지고 있다. 1. 기본 사용법fruits = ['mango', 'banana', 'orange', 'lemon', 'apple']# new_list =[표현식 for fruit in fruits]new_list = [fruit for fruit in fruits]print(new_list)# ['mango', 'banana', 'orange', 'lemon', 'apple']기본적으로 반복문 하나를 사용했을 때, 위와 같은 방법으로 리스트를 새로 생성할 수 있다.표현식(expression)은 리스트의 각 요소를 생성하는데 사용된다. for ..
이전 게시글을 통해 정규화시킨 mnist데이터셋 코드를 활용하여 간단한 합성곱 신경망 모델을 이미지를 분류할 수 있다.1. 모델 생성model = tf.keras.Sequential([ tf.keras.layers.Conv2D(32, (3, 3), activation = 'relu', input_shape=(28, 28, 1), name='conv'), # convolution 적용, 32개의 필터 3 x 3 형태 tf.keras.layers.MaxPooling2D((2, 2), name='pool'), # MaxPooling 적용 tf.keras.layers.Flatten(), # 1차원으로 변환 tf.keras.layers.Dense(10, activation='softmax')..
합성곱 신경망(Convolution Neural Network)합성곱 신경망은 데이터가 가진 특징들의 패턴을 학습하는 알고리즘으로 이미지나 영상 데이터를 처리하는데 주로 사용된다. 이를 사용하는 예시로는 이미지 분류(Image Classification)과 객체 탐지(Object Detection) 등이 있다. 이미지 분류는 이미지의 특징을 추출하여 고양이와 강아지 사진 중에서 어떤 사진이 고양이인지 강아지인지 분류해낸다 . 객체 탐지는 이미지에서 특정한 객체를 인식하고 위치를 파악하여 경계 박스로 객체를 탐지해낸다. 이미지 구성# Tensorflow import tensorflow as tfmnist = tf.keras.datasets.mnist # mnist 이미지 데이터 가져오기(x_train, y..
합성곱(Convolution) 연산합성곱 연산은 두 개의 함수 또는 신호를 결합하여 새로운 결과는 만드는 연산이다. CNN에서는 입력 데이터(이미지, 신호 등)와 필터를 사용하여 중요한 특징을 추출하거나 데이터를 변환시킨다. 필터를 입력 데이터 위에서 슬라이딩하여 데이터를 하나씩 곱하고 더하여 특징을 추출한다.$ f(x) $: 입력 신호로 처리하려는 데이터다.(이미지, 숫자 데이터 등)$ g(x) $: 입력 데이터를 분석하거나 변형하는 필터이다.슬라이딩: $ g(x) $를 $ f(x) $ 위에서 왼쪽에서 오른쪽 방향으로 조금씩 이동한다. 이동하면서 겹치는 부분이 있으면 겹치는 부분의 값을 곱하고 더한다. 마지막 부분에 도달할 때까지 반복한다. 간단한 수학 예제로 살펴보면 더 쉽게 이해할 수 있다.입력 신..
Sigmoid 함수sigmoid 함수는 입력값을 0과 1사이의 값으로 변환하는 비선형 함수로 주로 이진 분류 문제에서 확률을 계산하여 참, 거짓을 판단하기 위해 사용된다. 출력값의 범위가 0과 1사이에 있으며 0%~100%와 같이 확률적인 의미로 표현될 수 있다. 만약 함수의 출력값이 0.9라면 해당 입력이 참(1에 수렴하는)에 속할 확률이 90%인 것을 의미한다. 이와 반대로 출력값이 0.2라면 거짓(0에 수렴하는)에 속할 확률이 80%라는 것을 의미한다. 또한 sigmoid 함수는 비선형 함수이기 때문에 0과 1 주변에서는 기울기가 완만한 S자 모양의 그래프를 가진다.수학 수식으로는 $ \sigma(x) = \frac{1}{1 + e^{-x}} $로 표현한다.$ sigma(x) $: $ \sigma ..
useNavigate는 useHistory를 대체하여 react router dom v6에서 도입되었다. useHistory와 동일하게 url을 변경하여 페이지를 이동시키는데 사용된다.useNavigate 기본 사용법import { useNavigate } from 'react-router-dom' // 6버전 이상에서만 사용 가능const navigate = useNavigate()navigate('/test') // /test url로 이동기본적인 사용법은 위와 같이 useNavigate를 import한 후, navigate()에 이동할 url를 추가하여 사용한다. 예를 들어 버튼 onClick 함수에 navigate()를 정의하면 버튼을 클릭했을 때, 입력한 url로 이동하게 된다. 위의 방법 외에..