inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

딥러닝 CNN 완벽 가이드 - TFKeras 버전

표준화 시에는 활성함수를 ReLU를 사용하면 안되나요?

485

유영재

작성한 질문수 44

0

안녕하세요. 아래 코드와 같이 0-1 사이값으로 만든 후 표준화를 진행했습니다. 이럴 때 음수값이 포함되어 있기 때문에 연산에서 음수값도 의미가 있으니 문득 든 생각이 Conv2D에서 활성화 함수를 ReLU를 사용하면 안되나요?

train_images = np.array(train_images).astype('float32') / 255.
valid_images = np.array(valid_images).astype('float32') / 255.
test_images = np.array(test_images).astype('float32') / 255.

mean, var = train_images.mean(), train_images.std()
train_images = (train_images - mean) / var

mean, var = valid_images.mean(), valid_images.std()
valid_images = (valid_images - mean) / var

mean, var = test_images.mean(), test_images.std()
test_images = (test_images - mean) / var

normalization keras standard-deviation relu kaggle ELU tensorflow 머신러닝 배워볼래요? 딥러닝 cnn

답변 3

1

권 철민

이미지에 음수값이 있어도 ReLU 적용 무방합니다.

먼저 Activation은 입력값(즉 픽셀값)에 바로 적용하지 않습니다. Activation은 이전 layer의 출력값과 Weight를 Weighted Sum한 뒤 이를 Activation 적용하는 것입니다.

weight역시 음수 값이 나올 수 있습니다.

이전 layer의 출력값과 weight를 sum하고 이를 activation하는 것이기 때문에 이미지의 픽셀값의 음수값 영향이 없습니다.

다만 지적하신 대로 이전 layer의 출력값과 weight가 음수일때 ReLU는 0이 출력되기 때문에 해당 Gradient가 죽어버리는 문제가 있을 수 있습니다. 그래서 Leaky ReLU와 ELU가 있습니다. 하지만 이 두개를 적용해도 ReLU보다 특별히 크게 성능향상이 되는 것 같지는 않습니다(Case by Case로 다른것 같습니다)

0

유영재

네 감사합니다!

0

젓인

아, 네 먼저 8비트 이미지를 전처리로 255로 나누어 정규화를 시켜주고, 이를 다시 평균과 분산을 구해서 표준화를 적용했습니다

해당 넘파이의 최소, 최대값을 구하니 -4, 10으로 나오는데 이렇게 이미지에 음수가 있는 경우 Conv2D에 activation으로 ReLU를 적용해도 무방한가요? 단순하게 ReLU는 가중치 값이 음수일 때 0으로 처리하다보니 정보가 사라지는 것 아닌가 해서 Leaky ReLU 혹은 ELU 라는 것은 음수를 커버하는데, 이럴 때 쓰라고 한 것인지 궁금해서요. 감사합니다 

0

권 철민

안녕하십니까 

질문을 잘 이해못했습니다. 기본적으로 conv 에 activation을 사용한다고 강의에서 말씀드리고 있지만 이걸 질문하신건 아닌거 같고

좀 더 상세한 질문 업데이트 부탁드립니다 

resize 질문

0

60

1

20251212 Kaggle 런타임에 scikit-learn 설치 실패 트러블 슈팅

0

86

1

Loss와 매트릭 관계

0

76

2

Boston 코랩 실습

0

170

2

배치 정규화의 이해와 적용 2 강의 질문

0

143

2

Augmentation원본에 적용해서 데이터 갯수 자체를 늘리는 행위는 의미가있나요?

0

151

2

Conv함수 안에 activation 을 넣지 않는 이유가 뭔지 궁금합니다.

0

213

2

소프트맥스 관련 질문입니다

0

215

1

강의 관련 질문입니다

0

161

2

residual block과 identity block의 차이

0

200

2

옵티마이저와 경사하강법의 차이가 궁금합니다.

1

251

1

실습 환경

0

171

2

입력 이미지 크기

0

256

2

데이터 증강

0

203

2

albumentations ShiftScaleRotate

0

211

1

Model Input Size 관련

0

294

1

마지막에 bird -> frog 말고도 deer -> frog 도 잘못된것 아닌가요??

0

206

1

일반적인 질문 (kaggle notebook사용)

0

276

2

실무에서 Augmentation 적용 시

0

347

2

안녕하세요 교수님

0

235

1

가중치 초기화(Weight Initialization) 질문입니다.

0

332

1

테스트 데이터셋 predict의 'NoneType' object has no attribute 'shape' 오류

0

412

1

학습이 이상하게 됩니다.

2

1040

2

boston import가 안됩니다

0

230

1