월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
강사님 시퀀스 클래스의 get_item 관련해서 여쭤보고싶은게 있습니다.
get_item에서 정의한 배치 사이즈 단위로 순차적으로 CNN 모델에 넣어 학습을 시키는 걸로 알고 있었는데 해당 인덱스 값이 순차적이지 않고 랜덤적인 것으로 확인 했습니다. 분명 __init__ 함수에서 shuffle을 False로 지정하고 했는데도 왜 순차적으로 나오지 못하는지 알고 싶습니다. 예를들면 [(index)*self.batch_size:(index+1)*self.batch_size] 위코드의 배치 사이즈(12) 만큼의 구간을 출력해보면 0 : 12 888 : 900 828 : 840 1/99 [..............................] - ETA: 24s - loss: 1.5485 - accuracy: 0.3333792 804 480 : 492 120 : 132 516 : 528 324 : 336 1104 : 1116 540 : 552 이런식으로 나오는데 제가 이해한 것으론 0:12 -> 12:24 -> 24:36 이런식으로 순차적으로 구간을 인덱싱해서 모델에 데이터를 넣는 것이라고 저는 이해를 했습니다. 추가적으로 위 구간들 중에서 개수가 중복(ex) [0:12] 구간이 2번 출력 됨)인 구간도 나왔는데 중복인 구간이 나올경우 해당 구간들 중 한 구간만 학습 혹은 예측을하나요?? 감사합니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
활성화 함수 2번 적용된 BN 실습 코드
안녕하세요 선생님. 빨간 박스 부분에 왜 활성화 함수를 2번 써주었는지 이해가 되지 않아 질문 드립니다. 제가 생각하기로는 크게 의미가 없어 보이는데 왜 2번 활성화 함수를 거치게 되는건지 잘 모르겠습니다. 만약 코드 오류라면 저곳에 BN이 들어가는것이 맞는 것인가요? 항상 좋은 강의 감사합니다~
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
대용량 시계열 엑셀 데이터의 딥러닝에 관하여
안녕하세요 대용량 시계열 엑셀 데이터를 딥러닝으로 결과를 내는것에 대해 질문 드립니다. 현재 10~100기가 정도 까지의 대용량 엑셀 데이터를 딥러닝으로 학습시켜보려고 합니다. 그런데 현재 시도해보려는 방식이 과연 적절한지 의문이 들어서 문의 드립니다. 100기기가 정도되는 시계열 엑셀 데이터를 딥러닝 CNN 완벽 가이드에서 공부하는 방식으로 학습하는게 적절한지요?? 머신러닝 같은 경우 저같은 경우 pandas dataframe을 통해 학습하는 것을 경험해 본 바 있습니다만 강사님의 경우 spark 라는 대용량 데이터에 적합한 머신러닝 tool을 활용하여 학습하는 강의가 있는 것으로 알고 있습니다. 제 의문사항은 딥러닝에서도 spark와 같이 대용량 데이터를 잘 처리할 수 있는 tool을 따로 사용해야되지 않을까 싶어서 문의 드립니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
강사님 cnn 데이터 input shape에 관해 여쭈어보고 싶은게 있습니다.
궁금한 점이 맨처음에 데이터를 chanel-first 형식으로 만들어서 전처리 같은 부분을 진행하고 딥러닝을 시킬 때, 데이터를 chanel-last 형식으로 변경을 시켜서 딥러닝을 하게 되면 문제가 있는 부분일까요? 해당 데이터를 변경시킬떈 reshape를 써서 변경 시키려고 합니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
선생님 크기 개념이 헷갈립니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 정리하자면, Kernel Size는 필터의 크기이고, Receptive Field는 이 필터가 한 번에 보게되는 이미지의 크기라고 봐도 될까요? 말하고보니 둘이 같은 것 같기도 하고 ... 괜히 헷갈리네욥 ..
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
SGD 지그재그 질문드립니다.-2
안녕하세요 강사님 답변 감사드립니다. 댓글로 추가 질문 드렸는데 확인이 어려우신 것 같아 질문란에 올립니다. 그렇다면 교재의 그림(강의 11:43 쯤) X Y축은 가중치(여기에선 X Y 각각이 예를 들면 로스 함수를 이루는 w1, w2)이고 등고선 모양은 로스 함수의 loss값 분포라고 보면 되는지요
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
show_history
show.history 할때 이렇게 나오는데 선생님 강의와 코드를 똑같이 입력했지만 그래프가 달라서요 ... 이런 경우도 있는건가요 ?
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
SGD 지그재그 질문드립니다.
안녕하세요. 강사님 옵티마이저의 이해 - Momentum, AdaGrad 챕터 중 Momentum의 효과에서 local minima가 loss 값이 작은 목표 지점인 것은 알겠는데 그쪽으로 갈때 SGD가 왜 지그재그로 움직이는지 직관적으로 잘 이해가 안됩니다. 교재의 그림에서 X Y 좌표와 등고선이 뜻하는 건 무엇인가요. 그리고 강의 11:43 쯤에 말씀하신 y축으로 갈때 Loss가 크게 감소한다고 말씀하셨는데 왜 그런지 그 이유도 궁금합니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
안녕하세요 선생님! resnet 질문있습니다.
먼저, 좋은 강의 제공해주셔서 감사합니다ㅎㅎ 질문 글이 매끄럽지 않을 수도 있다는 점 미리 죄송하다는 말씀 드립니다ㅜ 질문이 있는데요, 이론상, identity block 을 input data가 거치면, output data도 input data와 큰 차이가 없도록 하는게 identity block 이라 알고 있는데요, 그렇다면 identity block을 쌓는게 어떤의미가 있는건지 잘 모르겠습니다. 가령, 50층의 일반적인 Convolution layer가 있는 model-1이 있고, (25층의 Conv layer + 25층의 identity layer)가 있는 model-2가 있다면, 어차피 identity의 input과 output은 완전히 똑같지는 않더라도 거의 비슷할테니 딱히 25층의 identity layer는 큰 역할을 하지 않고 model-2의 identity layer는 그냥 없는것으로 생각할 수 있는 것 아닌가요...? 단지 identity block을 쌓는 것만으로 model의 성능을 어떻게 올릴 수 있는 건지 잘 이해가 되지 않습니다. 물론, 가령 어떤 100개의 layer를 가진 모델이 degradation problem이 발생했고, 이를 해결하려 50개의 identity layer를 기존의 conv layer 50개와 교체한다면, degradation problem은 완화될거라고는 생각됩니다. 하지만, 그렇게 50개의 identity layer로 교체한 100 layer model이, 그냥 일반적인 50개의 conv layer 모델과의 성능차이가 유의미할것인지는 판단이 잘 되지 않습니다ㅜㅜ 왜냐하면, 개념적으로 layer를 통과하면서 feature를 뽑아내고 층이 쌓일 수록 점점 더 고도화된 feature들이 뽑히면서 classification 성능을 올리는 거라고 한다면, identity block은 input과 output이 비슷할테니 feature의 성능(?)에 별다른 영향을 미치지 않는 것 아닌가? 하는 의문이 있기 때문입니다 identity block은 feature에 큰 영향을 미치지 않을 것 같은데, 어떻게 identity block을 쌓는 것으로 모델의 성능이 좋아질 수 있는건가요??
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
강의 문의 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 매번 좋은 강의 영상 만들어 주셔서 감사드립니다. 혹시 일전에 언급한 CNN advanced 편 강의 제작 계획은 조만간 있으신지요? 기초편 내용에 부족한 부분을 느껴서 질문 드립니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
Dropout
안녕하세요, 간단한 질문이 생겼습니다!! 과적합을 방지하기위한 Dropout이 랜덤한 일부 노드를 Turn-off 하는데 이렇게 off 하기위해 선택된 노드는 언제 다시 랜덤선택을 할까요? 일반적으로 사용되는 방법이 있을까요? 보통 Batch마다 drop-out할 노드를 다시 선택하나요? 아니면, 매번 다시 선택하나요?
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
안녕하세요
안녕하세요 교수님 해당 rampup함수를 파이토치에서 사용할 수 있을까요? 사용할 수 있다면 어느 부분에 넣어주어야하나요...? 계속 해서 에러가 나서 질문드립니다 :(
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
선생님 헷갈려서 질문드립니다.
07:53 에 나온 F(w0+...) 이 식이 퍼셉트론이 가지는 가장 기본적인 식이고 더불어 weighted sum이라고 할 수 있는건가요 ?? weighted sum 이 단순히 w들의 값(가중치)의 합이 아니라 각 feature들과 곱한 값들을 더한것이 맞나요 ??
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
Internal Covariate Shift 관련 질문 드립니다.
선생님 안녕하세요, 공부를 하던 중 Internal Covariate Shift가 정확히 왜 개선 되어야 하는 문제인지 잘 모르겠어서 이렇게 질문을 남깁니다. 우선 제가 이해한 바로는 Covariate Shift란, 실제 데이터가 True function이라는 분포를 따른다고 할 때 아래와 같은 경우에서 발생한다고 이해했습니다. 우리가 train data를 샘플링 할 때 true function의 큰 틀은 따르지만 조금 다른 분포에서 샘플링을 하고 이를 사용해서 모델을 훈련시킬 경우, 학습 모델은 True function과 전적으로 겹칠 수 없게 됩니다. 따라서 test data를 train data가 커버하고 있지 않는 true function 영역에서 추출하게 된다면 학습시킨 모델은 잘 맞지 않게 될 것이고, 이는 학습용 데이터와 테스트 데이터의 분포가 서로 달랐기 때문에 발생한 문제라고 이해했습니다. Internal Covariate Shift란, 위와 같은 문제가 어떤 레이어의 출력이 다음 레이어의 입력으로 들어갈 때 일어나는걸로 이해했습니다. 딥러닝 특성상 한 레이어당 많은 파라미터가 존재하고 비선형적인 활성화 함수를 사용하기 때문에 A 레이어에 입력이 Z-mean scaling된 데이터가 들어온다고 해도, weighted sum과 활성화 함수를 거쳐서 B 레이어의 입력으로 들어가는 값들은 A 레이어의 정규화된 입력 분포와는 다른 분포를 가지고 있게 될 것입니다. 제가 생각하는 Internal Covariate Shift의 단점은 훈련 속도가 느려진다는 부분입니다. B 레이어의 입장에서는 A 레이어의 가중치 값이 바뀔 때마다 들어오는 입력의 분포가 달라지기 때문에 지속적으로 적응(마땅한 표현이 떠오르지 않네요 ㅠ) 해나가야 해서 결국 최적해를 찾기까지는 오랜 시간이 걸릴 것 같습니다. 이러한 문제는 네트워크가 깊어질수록 입력층에 가까운 레이어와 출력층의 가까운 레이어가 받아보는 분포의 차이는 더 크게 될 것이고, 때문에 입력층에 가까운 레이어의 가중치에서 미세한 조정이 발생해도 출력층에 가까운 레이어의 가중치에서는 상당한 임팩트의 영향력을 끼칠 수 있다고 생각이 되어 네트워크가 안정적으로 수렴하기에 어렵다고 생각됩니다. Training 과정에서는 위와 같은 부분이 문제라고 생각되는데 혹시 제가 잘못 이해한 부분이 있다면 지적 부탁드리겠습니다 선생님. 그리고 문서들을 쭉 찾아보니까 test시에도 training 과정에서 사용했던 분포와 test 할 때 사용하는 이미지 데이터의 분포가 다르기 때문에 성능 차이가 발생한다고 하는데 이 부분이 잘 이해가 안갑니다. 어차피 테스트 할 경우에는 training 할 경우와 세부적으론 다르지만 큰 틀에서는 비슷한 분포의 데이터를 사용하는데, 이러한 gap을 줄여주기 위해 training을 돌리는게 아닌가요? 항상 감사드립니다 선생님. 이와 겹치는 부분이 있지만 결국에는 다른
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
안녕하세요 교수님
교수님의 강의를 듣고 pytorch로 넘어와서 작업을 하다 tensorflow로 다시 작업을 해야할 상황이 생겼는데,,,, pytorch 같은 경우 timm이라는 라이브러리를 통해 vit, convnext등 다양한 모델을 이용할 수 있는데 tensorflow같은 경우 어떻게 해야 해당 모델들을 쓸 수 있는지 궁금해서 이렇게 질문을 드립니다 :)
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
preprocessing_input에 관해서 질문있습니다!
안녕하세요! image data의 scaling preprocessing 유형에서 질문 있습니다! custom하게 model을 만들 때 pretrained 모델에서의 preprocessing_input과 BatchNormalization layer 중 하나만 사용해야되는게 맞는건가요?
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
활성화 함수에 대한 전반적인 질문 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 권철민 선생님 안녕하세요, 딥러닝 cnn 완벽 기초 강의를 모두 수강 하고 복습을 하던 중에, 활성화 함수의 전반적인 개념, 특히 ReLu 함수에 대해 질문이 있습니다. 우선 활성화 함수가 필요한 이유는 모델의 복잡도를 올리기 위해서라고 이해했습니다. 단순 퍼셉트론에서 XOR 문제를 해결할 수 없었던 문제를 해결하기 위해 MLP가 등장했고, 여기에서 step function이 활성화 함수로 사용되어 이전 층의 결과값을 함수에 집어 넣어 다음 층으로 전달하는 역할을 맡게 되었습니다. 하지만 MLP를 넘어 더 많은 히든 레이어를 쌓아 올리는 DNN의 경우, 선형 함수의 특성상 이를 여러번 겹쳐서 쌓아 올려도 결국에는 하나의 선형 함수로 표현할 수 있기 때문에 복잡도를 올리기 위해 레이어를 더 쌓는 의미가 없다고 이해했습니다.(물론 이렇게 쌓을 경우 레이어마다 가중치가 생기기 때문에 아예 의미가 없다고는 할 수 없겠으나, 모델 자체의 복잡도를 올리기 위한 목적에는 부합하지 않는다고 생각하고 있습니다). 단순한 퍼셉트론을 넘어 다층 퍼셉트론에서는 기존의 단층 퍼셉트론만을 활용했을 때는 풀 수 없었던 복잡도의 문제 해결이 가능해졌지만, 동일한 방법으로는 아무리 레이어를 쌓아도 더욱 복잡한 문제는 풀 수 없었습니다. 때문에, 더욱 복잡한 문제를 풀기 위해서 모델의 복잡도를 올리기 위해서는 선형 활성화 함수를 여러개 사용하여 쌓아도 결국 하나의 레이어를 사용하여 나타낼 수 있는 상황을 막아야 하기 때문에 이와 반대로 비선형 활성화 함수를 사용한다고 이해하고 있습니다. 비선형 활성화 함수들의 예시로 시그모이드, 하이퍼볼릭 탄젠트와 같이 shape 자체가 비선형인 함수들이 각광받았는데, 작은 미분값으로 인해 깊은 네트워크로 갈수록 역전파 과정에서 발생하는 Gradient Vanishing 문제, 그리고 양극단으로 값이 모일수록 명확성이 떨어진다는 단점때문에 히든 레이어의 활성화 함수로는 더는 차용되지 않는다고 이해하고 있습니다. 이러한 기울기 소실 문제를 해결하기 위해 대부분의 은닉층에서는 활성화 함수로 ReLu함수를 사용한다고 이해하고 있는데요, 렐루 함수일 경우 ReLu(-1) + ReLu(1) != ReLu(-1 + 1)이기 때문에 비선형 함수이지만, (음의 무한대, 0] 그리고 [0, 양의 무한대) 구간에서는 선형이라고 알고 있습니다. 이를 고려한다면 ReLu 함수는 비록 전체 구간에서는 비선형 함수이지만, 대부분의 구간에서는 선형 함수인데 이러한 부분을 고려할 때 어떻게 ReLu 함수를 사용할 때 저희가 시그모이드와 같은 함수에서 기대하는 것과 같은 비선형적인 특성으로 모델의 복잡도를 올려줄 수 있는것인지 직관적으로 잘 와닿지가 않습니다. 또한, CNN 연산 적용 후 ReLu 함수를 적용하는 부분이 궁금합니다. 이미지의 특정 영역에 filter값을 곱해서 특정을 추출하는 feature extracting 과정에서 합성곱 연산의 값이 크게 나올수록 이미지의 해당 영역이 해당 필터가 추출하고자 하는 값(가로, 세로, 커브 모양 등등)을 강하게 나타내고 있다고 이해하였는데요, 그렇다면 이렇게 추출되서 생성된 새로운 feature map에 ReLu 함수를 적용하는 이유는 모델의 복잡도를 올리기 위해 비선형적인 함수를 추가하는것 뿐만 아니라 예를 들어서 가로 선을 추출하기 위한 필터를 통과했을 경우, 값이 커서 가로에 해당할 확률이 높은 부분은 그대로 유지하되, 음수로 결과가 나와 가로의 특성과는 전혀 맞지 않는 특성을 모두 0으로 만들어서 가로 특징이 없다고 정리하는 역할 또한 존재할까요? 혹시 제가 놓친 ReLu 함수를 CNN의 활성화 함수로 쓰는 이유가 있다면 지적 부탁드립니다. 이미지의 픽셀은 0~255의 값으로 구성된다고 알고 있는데 음수일 경우도 존재할까요? 만약 합성곱 연산의 결과로 음수값이 나왔다면 어떻게 해석하는지 궁금하고 또 이럴 경우 filter의 weight가 음수로 크게 설정되어 있어서 발생하는 경우인지도 궁금합니다. 그리고 CNN 모델의 진행 과정에서, 입력층과 가까운 Conv layer일수록 이미지의 edge, textile같은 low level 특징을 추출하는 것에서 출력층과 가까울수록 더욱 더 추출된 특징들을 일반화 시킨다고 이해했는데 제가 맞게 이해했을까요? 마지막으로 그렇다면 이때 각 filter마다 이미지 안에 가로, 세로, 혹은 다양한 모양들의 곡선적인 특징들이 존재하는지에 대해 추출하는 역할을 담당하게 될것이라고 예상되는데, 이렇게 필터마다 작업이 할당되는 자세한 로직이 알고싶다면 어떤 분야에 대해 더 공부해보아야 할지 추천 부탁드리겠습니다. 현재 머리속에서 너무 많은 부분들이 정리가 안되어서 글이 장황해진점 너무 죄송합니다. 혹시 제가 어떤 의도로 질문을 드린건지 잘 파악이 안되시는 부분이 있다면 풀어서 써보겠습니다. 항상 감사합니다 선생님!
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
전이학습 질문이요!
강의 듣는 중 질문이 있습니다. 저는 사람을 인식하는 프로젝트를 만드는 중입니다. 제가 생각하고 있는 학습 방법의 과정은 1) 맨처음 학습=> 우수한 학습모델을 가져와서 3가지의 객체를 인식하는 데이터를 학습시킨다 (이번 강의로 감을 잡음) 2) 1에서 학습된 모델을 사용하다가 인식할 객체의 추가를 위해 1의 모델을 load후 추가로 객체의 데이터를 추가학습시킨다 (지속적으로 label을 추가 시킬수 있는 모델을 만드는것이 목적) 질문) 2번과정에서 추각 학습을 할때 추가시킬 데이터만 학습을 시키면 되는건가요? 아니면 모든 객체를 처음부터 다시 학습시켜야 하나요? => 제가 원하는 방향은 추가 데이터만 학습을 시켜도 기존에 학습시켯던 label과 추가 label을 전부 검출하는것 입니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
질문있습니다.
H(x) = F(x) + x 에서 x가 이미 학습된 feature map이잖아요?? 그럼 H(x)에 이미 최적으로 학습된 모델이란 말이고, 그 최적에 학습된 모델에 F(x)모델을 더해서 층을 늘려가니 F(x)모델이 0에 가깝게 학습하면서, 결과가 좋게 나왔다.. 라고 해석을 했는데 맞나요? 머신러닝, 딥러닝, CNN 모든 강의 다 듣고 다시 정주행 하면서 정리중입니다. 영양가 높은강의 감사합니다 ^_^
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
질문있습니다.
image의 메타데이터 정보를 CPU가 전처리와 Augmentation등 여러가지기능을 수행해서 numpy로 만들고 그것을 Tensor로 바꾸어 GPU에 데이터를 던져주자마자 다시 CPU는 배치사이즈만큼 전처리를 진행하여 CPU, GPU가 계속 같이 동작하는것이고 이로인해 CPU는 계속 일을하고 만약 Augmentation의 동작이 많아 CPU에서 일처리가 오래걸리면 GPU가 일을 하지않고 논다는것이다. 라고 해석했는데 맞나요...?? 딥러닝이랑 CNN강의 전부 이수하였고 다시 공부하며 꼼꼼하게 체크하고있습니다. 항상 좋은강의 감사합니다 ^_^