딥러닝 네트워크의 연산 강좌의 맛보기 강의입니다.
안녕하세요, 신경씨입니다. 우리가 이번 시간부터는 Lecture.2, Dense Layer를 한번 살펴보도록 하겠습니다. 그래서 이번 시간에는 마찬가지로 Dense Layer를 배우기 전에 좀 기본적인 요소들을 한번 살펴보고 가도록 할 거예요. 그래서 Artificial Neuron을 우리가 Lecture.1에서 배워봤었는데 그것들이 어떻게 뉴런 벡터들, 즉 묶음으로 이루어져서 레이어를 이루는지 그리고 딥러닝의 전체적인 구조는 어떻게 생겼는지 간단하게 한번 살펴보고 다음 시간부터 본격적으로 Dense Layer 한번 살펴보도록 할 겁니다. 제가 저번 시간까지 알려드린 내용은 Affine Function과 Activation Function으로 이렇게 이루어져 있다고 말씀을 드렸었는데 X값 벡터 하나를 받아서 Activation Value를 연산을 해주는 이 최소 단위에 대해서 한번 살펴본 거예요. 물론 이 사이에는 다른 연산이 들어갈 수 있겠지만 우리가 보편적으로 Artificial Neuron을 이런 식으로 표현을 하기 때문에 저도 이렇게 한번 사용을 해보도록 할게요. 그랬을 때 제가 조금 더 오버뷰를 한번 해보도록 할게요 뭐냐면 딥러닝이 어떻게 이루어져 있는지 한번 살펴보도록 할 건데 우리가 어떤 x 값을 뭐 예를 들어서 지금부터는 텐서기 때문에 라지 x를 한번 사용해 보도록 하겠습니다 그랬을 때 우리가 제가 지금 동그라미가 아니라 네모를 이용해서 그렸었죠 그리고 나서 쭉쭉쭉 가게 되는 건데 우리가 얘들은 레이어라고 부르는 개념이 들어가게 되는 거예요. 그래서 첫 번째 레이어, 그 다음에 두 번째 레이어, 그래서 마지막 아웃풋 레이어, 이런 식으로 아웃풋 레이어, 이런 식으로 하게 되면 이 마지막 레이어에서는 Prediction을 하게 되는 건데 예를 들어서 우리가 주택 가격을 예측을 하고 싶다고 하면 실수 값을 내보내게 될 거고 강아지 고양이를 구분하고 싶다 이런 클래스파이어라면 0 아니면 1 이런식으로 내보내게 될 거에요 아니면 뭐 천 가지를 구분해야겠다 그러면 쭉쭉 가서 999까지 출력을 내보내 주는 이런 전체적인 네트워크가 바로 딥러닝 네트워크가 되는 거에요 그랬을 때 레이어라는 개념이 처음으로 들어온 건데 이 레이어라는 것은 이 안에 뉴런들이 이렇게 쭉쭉 배열된 거에 불과한 거예요. 다시 말해서 우리가 앞에서 배웠던 뉴런을 하나의 묶음으로 다룬 게 바로 레이어라고 생각해 주시면 되는 거예요. 그러면 이 하나의 묶음, 이 단위가 여러 개 깊이 쌓이면 쌓일수록 깊은 딥러닝 네트워크가 되는 거예요. 그래서 우리가 앞에서 배웠듯이 이 하나하나의 뉴런들은 이 안에 Affine Function과 Activation Function, 아니면 뭐 Batch Normalization이라든가 Dropout이라든가 이런 것들을 포함하고 있는 이런 연산 단위가 바로 Layer라고 생각을 해주시면 좋을 것 같아요. 그래서 우리가 이 개념을 이용한다면 여러 개의 뉴런들을 한번 생각해 볼 수가 있게 되는 거예요. 다시 말해서 우리가 앞에서 배웠던 뉴런 1, 뉴런 2, 그 다음에 n개의 뉴런이 이렇게 쭉 깔려있다라고 하면은 우리는 얘를 전체 묶음으로써 Layer라고 부를 수 있게 되는 거예요. 그리고 우리가 수학에서 배웠을 때 벡터라는 거 자체가 단순히 숫자들의 어레이가 아니라 조금 더 제너럴하게 사용될 수가 있거든요. 그 개념을 그대로 이용한다면 우리는 뉴런들을 묶은 거를 뉴런 벡터로서 부를 수가 있게 되는 거예요. 다른 데서는 뭐 뉴런 벡터라는 말을 쓰진 않지만 제가 여러분들한테 예를 들어서 우리가 수학에서 배우는 2, 3, 4 이거 자체가 어떤 스칼라 값들을 모아놓은 묶음이잖아요. 이걸 조금 더 제너럴하게 사용한다면 우리가 뉴런 벡터라는 것도 생각을 해볼 수 있으니까 여러분들 다른 데 가서 뉴런 벡터라는 이런 말을 쓴다기보다도 개념적으로 한번 이해를 하셨으면 좋겠습니다. 다시 한번 강조를 하지만 딥러닝은 여러 개의 레이어들이 층층이 쌓여서 연산이 이루어지게 되는 거고 이 레이어라는 거는 이런 식으로 뉴런들의 집합을 바로 레이어라고 생각을 하시면 좋을 것 같습니다. 그래서 제가 여러분들한테 뭐 참고 삼아서 하나만 더 알려드리고 넘어가 보도록 할게요. 뭐냐면은 우리가 앞에서 배웠었던 이런 식의 W, 이런 식의 웨이트를 곱하고 그 다음에 바이어스를 더해주는 이런 연산을 하나의 필터링 과정이라고 생각을 한번 해보도록 할게요. 그리고 실제로 이 Correlation이라는 연산 자체 뒤에서 다루도록 할 거지만 이 연산 자체는 이 X 벡터와 그 다음에 Weight 벡터 얘의 서로 유사성을 판별할 수 있는 그런 동작을 하기도 하거든요. 그랬을 때 얘가 만약 Weight Weight Vector 1, Weight Vector 2 쭉쭉 가서 다른 연산들 N개의 Weight Vector를 가지고 있고 Bias도 마찬가지겠죠. Bias 2, Bias N 이런 식으로 가지고 있다면 얘는 서로 다른 파라미터를 가지고 있는 다시 말해서 서로 다른 Parametric Function이 만들어지게 되는 거예요. 그리고 이 Parametric Function이 각각 필터링이라는 개념을 우리가 부른다고 한다면 얘들은 서로 다른 필터링을 하게 되는 필터들의 묶음이라고 즉 레이어라는 것 자체가 필터들의 묶음이라고 조금 더 이론적으로 분석을 할 수 있게 되는 거예요. 다시 말해서 우리가 Lecture.1에서 배웠던 것처럼 각각의 이런 뉴런들은 이런 필터링 연산을 하게 되는 거고 이 안에는 웨이트와 바이어스들을 서로 다른 웨이트와 바이어스들을 가지고 있는 패러메트릭 펑션이라고 생각을 해볼 수가 있게 되는 거예요. 그래서 이 다 서로 다른 파라미터를 가지고 있는 패러메트릭 펑션들의 묶음이 바로 레이어라고 생각을 해볼 수가 있게 되는 거예요. 그랬을 때 우리가 얘들은 서로 다른 파라미터를 가지고 있기 때문에 예를 들어서 서로 다른 인풋이 들어간다고 가정을 한번 해보도록 할게요. 이런 식으로 서로 다른 인풋이 들어가더라도 제가 1강에서 말씀드렸다시피 parametric function이라는 것 자체가 같은 차원의 파라미터들을 가지고 있다고 하더라도 그 값이 만약 다르다면 웨이트와 바이어스가 다르다면 서로 다른 A1, 액티베이션2, 액티베이션N까지 이런 식으로 서로 다른 값들을 출력을 할 수 있게 되는 거겠죠. 다시 말해서 서로 필터들을 묶어놓은 건데 같은 값을 넣는다고 하더라도 우리는 다른 출력들을 내보내 주는 필터들의 묶음이라고 생각해 볼 수가 있게 되는 거예요. 그래서 제가 여러분한테 알려드리고 싶은 것 중 하나가 바로 필터뱅크의 개념인 거예요. 실제로 딥러닝 말고 딥러닝이 훨씬 생기기 전부터 있었던 개념인 건데 여러분들이 이런 좀 어떻게 보면 이론적인 이런 분석들 이런 것들 개념들도 알고 있으면 여러분들이 딥러닝을 바라보는 시야 자체가 훨씬 더 넓어지기 때문에 제가 이걸 잠시 언급하고 넘어가 보도록 할게요. 여러분들이 필터뱅크는 이미 많이 사용을 해봤어요. 그래서 제일 대표적인 예시가 음악을 들을 때 이퀄라이저 있죠. 그래서 예를 들어서 0부터 20Hz, 20부터 100Hz 아니면 100부터 500Hz 이런 식으로 해서 어떤 바들이 있는 걸 볼 수가 있었을 거예요. 그래서 이렇게 바들이 쭉 있고 그래서 얘를 올리고 내리면 저음이 강조가 되는 그런 음성이 나온다던가 아니면 중간 베이스 쿵쿵거리는 걸 좋아한다면 얘들을 올려주고 그다음에 목소리나 이런 것들을 좋아한다면 조금 더 고주파 영역을 높여주는 이런 동작들을 다뤄봤었을 거예요. 이런 이퀄라이저 자체가 얘들 하나하나가 필터인 거예요. 자기의 주파수 대역을 가지고 있고 얘들을 강조를 할지 아니면 서프레스 시킬지 이런 것들의 필터들의 묶음이 바로 필터뱅크의 개념이기 때문에 여러분들도 이런 식으로 생각을 해보시면 좋을 것 같아요. 얘들은 서로 다른 함수예요. 파라미터를 가지고 있다고 생각할 수도 있고 아니라고 생각할 수도 있긴 한데 얘들은 서로 자기 주파수 대역이라는 파라미터를 가지고 있는 함수라고 생각을 해볼 수가 있게 되는 거고 입력이 들어올 때 높여라 낮춰라 이런 입력이 들어올 때 그거에 맞는 연산을 해주는 그런 함수라고 생각을 해본다면 얘가 바로 필터뱅크의 대표적인 예시가 될 수가 있게 되는 거예요 여러분들이 필터뱅크를 조금 더 익숙하고 어떻게 보면은 조금 더 신기하게 생각을 할 수 있도록 제가 하나 더 알려드리도록 할게요 딥러닝에서도 지금까지도 자주 사용되는 것 중 하나가 바로 MFCC라는 피처를 뽑게 되는 건데 저도 이제 학부 4학년 때 이 친구랑 되게 많이 놀았었죠 얘가 특징을 보게 된다면 이런 삼각형들로 이루어져 있는 걸 볼 수가 있어요 점점 넓어지는 건데 얘들 하나하나가 뭐냐면은 방금 이퀄라이저랑 똑같이, 똑같은 개념으로 예를 들어서 0부터 20Hz다, 20부터 80Hz다, 아니면 80부터 200Hz다 이런 식으로 서로 담당을 해서 그 안에 그 주파수 대역에 얼만큼의 에너지가 있는지 뽑아내는 함수들이라고 생각을 해볼 수가 있는 거예요. 즉 필터들이라고 생각을 해볼 수가 있게 되는 거예요. 그래서 지금 제가 삼각형을 하나 둘 셋 넷 다섯 여섯 일곱 개를 만들어 놨기 때문에 일곱 개의 필터들이 동시에 있는 걸 볼 수 있어요 예를 들어서 이런 식의 필터들이 이런 식으로 주파수 대역이 이렇게 있다고 치면 같은 X 같은 음성이 들어간다고 하더라도 자기 주파수 대역에 따라서 예를 들어서 이 에너지는 20만큼 들어 있어 80만큼 들어있고 100만큼 들어있고 나머지 조금 더 고주파 대역은 20이니까 고주파 대역에 에너지는 별로 없네 이런 식으로 서로 다른 필터링 역할을 해줄 수가 있다는 거예요 그리고 얘들을 전부 다 묶어 놓은 게 바로 필터뱅크다 이런 식으로 생각을 해 주시면 좋을 것 같아요. 그래서 필터뱅크라는 것 자체가 여러 가지 필터들을 묶어 놓은 거고 우리가 이런 식으로 만들어 놓은 것들 즉, 필터들을 여러 개 묶어 놓은 것들은 이미 클래식한 것들에서 클래식한 엔지니어링 분야에서 많이 사용되고 있다고 생각을 하시면 좋을 것 같아요. 뭐 참고 삼아서 왜 삼각형 길이가 넓어져요라고 하면은 이거는 사람의 약간 반응을 좀 따라 한 거기 때문에 사람이라는 것 자체가 10Hz가 바뀐다고 하더라도 고주파일 때 조금 더 감지를 못해요. 그러다 보니까 얘들이 삼각형이 점점 넓어지면서 사람의 귀랑 비슷하게 만들어내는 필터뱅크를 어떻게 보면 수식화를 만든 거겠죠. 모델링을 한 게 바로 MFCC의 멜 필터뱅크라는 개념이라고 생각하시면 좋을 것 같아요. 이건 여러분들이 이해를 못 하셔도 괜찮은 건데 이런 식의 개념들이 딥러닝이 나오기 전부터 이미 자리를 잡고 있었고 활발하게 사용이 되고 있었구나. 이거를 생각하시면 좋을 것 같아요. 이 개념을 그대로 이용을 한다면 다시 한번 제가 강조를 하지만 얘들은 각각의 웨이트와 바이어스들을 가지고 있기 때문에 같은 입력을 받는다고 하더라도 서로 다른 출력을 내보내게 되는 거예요. 다시 말해서 서로 다른 필터인 거고 이 다른 필터들을 묶어놨기 때문에 필터뱅크라고 하나의 레이어를 필터뱅크라고 생각을 하실 수 있는 겁니다. 그래서 다시 한번 제가 딥러닝 구조를 한번 그려보자면 얘는 레이어, 얘도 레이어, 쭉쭉 가서 마지막까지도 레이어가 이렇게 있기 때문에 얘들은 레이어들이 연결된, 계속 계속 연결되어 있는 구조라고 생각을 할 수 있기 때문에 우리가 보통 이런 분야, 이런 아키텍처를 엔지니어링 분야에서는 캐스케이디드 구조라고 불러요. 캐스케이드 아니면 캐스케이디드 구조라고 부르는 건데 이 딥러닝 자체도 캐스케이디드 필터뱅크의 그런 특징을 따르고 있다고 생각하시면 좋을 것 같습니다. 그래서 여러분들한테 팁을 드리자면은 여러분들 뭐 다른 사람들이 면접이나 이런 데 가가지고 딥러닝 아키텍처가 어떻게 생긴 겁니까? 이러면은 코릴레이션 필터들을 묶어 놔서 필터뱅크를 만들고 그 필터뱅크들의 캐스케이디드 구조가 바로 딥러닝 아키텍처인다라고 하면은 이 사람 좀 제대로 배운 사람인가? 아니면 왠지 나보다 더 잘할 것 같은데? 라고 여러분들이 잘 모르더라도 이렇게 말만 하더라도 조금 있어 보이는 표현이 될 수가 있겠죠. 어쨌거나 딥러닝 같은 경우도 우리가 이미 클래식한 엔지니어링 분야에서도 충분히 분석할 만큼의 그런 아키텍처를 띄고 있으니까 다른 데서 말하는 것처럼 딥러닝은 완전히 블랙박스다 아니면 해석이 불가능한 그런 도구다 라고 생각을 할 필요는 없는 거예요 그래서 이런 식으로 좀 생각을 한번 해 보셨으면 좋겠어서 이런 뉴런벡터와 필터뱅크 이런 개념들도 알려드리고 한번 넘어가 보도록 할게요 그 다음에 우리가 이제 앞으로 배우게 될 거는 바로 덴스 레이어인데 우리가 얘가 바로 레이어 하나라고 불렀었죠 근데 덴스라는 이름이 붙은 게 뭐냐면 우리가 어떤 x 값들이 있다고 가정을 한번 해보도록 할게요 그래서 우리가 여태까지 이렇게 다루는데 얘들 하나하나씩 x1부터 xi까지 쭉 펼쳐서 이런 값들을 한번 해보도록 할게요 그랬을 때 덴스 레이어의 특징이 뭐냐면 우리가 얘가 전부 다 들어가는 거예요 그리고 이 뉴런에도 인풋이 전부 다 들어가고 마지막까지도 그래서 얘도 전부 다 들어가는 거 즉 다시 말해서 뉴런마다 인풋들이 전부 다 연결되어 있는 거를 우리는 바로 덴스 레이어라고 부르게 되는 거예요 우리가 지금 배운 게 닷프로덕트이기 때문에 어떻게 보면 덴스 레이어가 너무 당연한 거 아닌가 라고 생각을 해볼 수 있는 건데 예를 들어서 X1, X2, X3, X4, X5까지 한번 해보도록 할까요 그랬을 때 얘들이 이렇게 세 개만 들어가는 거 세 개만 들어가고 세 개만 들어가고 그 다음에 뭐 세 개만 들어가고 이런 식으로 되고 이 세 개만 지금 사용을 했었죠 다음에는 뭐 얘만 사용하고 다음에는 또 얘만 사용해서 Lecture.2-1, Lecture.2-1, Lecture.2-1, Lecture.2-1, Lecture.2-1 우리는 덴스 레이어다 라고 생각을 하시면 좋을 것 같습니다 그래서 우리가 보통 네트워크란 딥러닝을 배울 때 컨볼루셔널 뉴럴 네트워크 그 다음에 리커런트 뉴럴 네트워크 아니면 제너러티브 에드버서리얼 네트워크라고 부르는 건데 여기서 제가 뭐 하나 더 알려드리고 넘어가도록 할게요 뭐냐면은 보통 우리가 네트워크라는 개념이 들어가게 되면은 두 가지가 필요해요 뭐냐면 하나는 엣지와 그 다음에 바로 노드라는 개념이 필요하게 되는 건데 얘들이 노드 역할을 해주는 거예요 딥러닝에서는 얘들이 전부 다 노드 역할을 해주는 거고 이 커넥션 자체가 바로 엣지 역할을 하는 거예요 그래서 우리가 딥러닝이 나오기 전부터 이런 구조들을 보통 네트워크라고 불렀기 때문에 딥러닝에서도 네트워크라는 개념을 그대로 사용을 하고 있는 겁니다 그래서 엣지 이런 어떤 값들 이런 묶음들 어떤 연산이 진행되는 곳들을 우리는 노드라고 부르게 되는 거고 어떻게 서로 값들이 연결돼 있는 어떻게 값들이 플로우를 하게 되는 건지 그게 바로 엣지라고 부르는 건데 이런 것들이 그대로 표현이 되기 때문에 딥러닝에서도 네트워크라고 부른다고 생각을 하시면 좋을 것 같습니다 어쨌거나 우리가 지금 배우고 있는 거는 덴스 레이어인데 덴스 레이어는 다시 한번 강조를 하지만 우리가 덴스 레이어가 이렇게 주어졌을 때 이 안에는 뉴런들이 이렇게 있게 되는 거고 이 뉴런들이 앞에 있는 값들과 전부 다 연결돼 있는 게 바로 덴스 레이어다 라고 생각을 해주면 좋을 것 같습니다 그 다음에 뭐 또 지나가는 말로 제가 하나 더 말씀을 드리도록 할게요 제가 사실 여러분들한테 아무리 기초적인 강의라고 한다고 하더라도 알려드리고 싶은 게 많아서 하나만 더 알려드리자면은 얘 같은 경우에는 우리가 지금 파라미터를 가지고 있죠 그래서 각각 웨이트와 바이어스들을 전부 다 가지고 있는데 어떤 책이나 강의에서는 파라미터를 가지고 있는 것만 레이어라고 부르는 경우가 있어요 근데 우리가 앞에서 배웠던 것처럼 예를 들어서 액티베이션 펑션을 한번 생각해 보도록 할까요 액티베이션 펑션 같은 경우에는 이 연산을 해서 아웃풋을 내주는 그런 역할을 하는 연산 단위가 된단 말이에요. 그랬을 때 얘들은 파라미터를 가지고 있지 않아요. 다시 말해서 시그모이드, 탄젠트h, 렐루 같은 것들은 패러메트릭 펑션이 아니라 그냥 특정한 연산 규칙에 따라서 아웃풋을 만들어 주는 그런 함수들이란 말이에요. 그러면 그런 데서는 얘들을 레이어라고 부르지 않는 경우도 있거든요. 하지만 저는 레이어라고 부를 거예요. 왜냐면 어떻게 보면 절반, 절반인데 파라미터를 가지고 있는 레이어들만 레이어라고 부르고 파라미터가 없으면 레이어라고 안 부르는 경우도 있는데 여러분들이 딥러닝을 배울 때 이런 파라미터를 기준으로 배우는 것도 중요하긴 한데 연산의 단위별로 배우는 게 저는 더 좋다고 생각을 하거든요. 그러다 보니까 예를 들어서 얘가 액티베이션 펑션이 없다고 가정을 해볼게요 그래서 중간에 쭉쭉 있고 여기서 시그모이드를 가지고 있는 액티베이션 레이어가 있다고 치면은 얘들은 파라미터가 없긴 하지만 저는 레이어라고 부르도록 할게요 그게 여러분들이 딥러닝 네트워크를 조금 더 분석적으로 다루는데 조금 더 좋기 때문에 저는 파라미터가 없는 것들도 레이어라고 부른다고 좀 받아들여 주시면 좋을 것 같습니다 구체적인 내용들은 이 뒤에서 여러분들이 풀링 레이어라든가 이런 것들을 배우다 보면은 충분히 이해가 되실 거니까 그냥 그런 게 있구나라고만 생각하고 넘어가시면 좋을 것 같습니다. 그래서 덴스 레이어를 조금 더 일반화 시켜보도록 할게요. 제가 말씀드렸다시피 딥러닝 네트워크는 레이어들의 캐스케이디드 구조로 이루어져 있다고 말씀을 드렸었는데 제가 i번째 레이어를 한번 뽑아보고 얘가 덴스 레이어라고 가정을 한번 해보도록 할게요. 다시 말해서 우리가 i번째 레이어를 뽑았는데 얘가 덴스 레이어고 이 앞뒤로 전부 다 덴스 레이어라고 가정을 한번 해보도록 하면 우리가 제가 말씀드렸다시피 덴스 레이어라는 것 자체가 레이어이기 때문에 뉴런들의 집합으로 이루어지게 되는 거예요. 그리고 덴스 레이어이기 때문에 이 앞에 있는 뉴런들이랑 전부 다 이렇게 연결이 돼 있는 거를 알 수가 있겠죠. 그랬을 때 전부 다 연결이 돼 있는다? 그게 어떤 의미인지는 조금 뒤에서 가서 구체적으로 한번 다뤄보도록 하겠습니다. 어쨌거나 지금 우리가 다루는 건 i번째 레이어가 덴스 레이어다. 이 개념 자체가 뭐냐면 이 앞에 있는 레이어에 아웃풋과 전부 다 연결이 되어 있는 거구나 라고 생각을 해 주시면 좋을 것 같고 이 다음 단에도 만약 Dense Layer가 온다 라고 하면은 우리 i번째 레이어가 이제 내보내 주는 이 Activation Value들 있죠 이 Activation Value들이 또 다음 뉴런들이랑 전부 다 연결돼 있는 게 Dense Layer인 거구나 라고 생각을 해 주시면 좋을 것 같습니다 그래서 제가 Notation을 조금 더 알려드리자면은 뭐 이런 식으로 표현을 한번 해보도록 할게요. 그래서 레이어라는 것들을 L 이렇게 한번 불러보도록 하고 그 다음에 이런 식으로 중괄호를 이렇게 붙여서 여기가 레이어 인덱스를 한번 붙여보도록 할게요. 이것도 마찬가지로 스탠퍼드의 CS230 강의의 notation을 그대로 따른 거고 딥러닝에서 전반적으로 사용하는 notation이라고 생각을 해주시면 좋을 것 같습니다. 그래서 이 안에 들어있는 벡터들을 이런 식으로도 표현을 해줄 수가 있을 거고 그 다음에 제가 방금 이제 N개를 깔았었는데 얘 같은 경우에는 레이어마다 지금 레이어마다 뉴런들의 집합이라고 했었는데 뉴런의 개수가 달라질 수가 있거든요. 그러다 보니까 뉴런의 개수가 예를 들어서 얘가 첫 번째 레이어다 라고 하면 제가 L1이라는 이름을 붙여보도록 하고 L2라는 거 즉 다음 레이어의 뉴런의 개수는 L2라는 걸로 한번 표현을 한번 해보도록 할게요. Lecture.2-1 Lecture.2-1 Lecture.2-1 Lecture.2-1 Lecture.2-1 Lecture.2-1 Lecture.2-1 Lecture.2-1 다시 한번 강조를 하지만 이제 뉴런의 개수 즉 얘를 인풋 레이어라고 부르기도 하거든요 파라미터가 없지만 인풋 레이어라고 부르기도 하는데 우리가 레이어의 길이 즉 뉴런의 개수가 몇 개 있는지를 L이라는 표현을 통해서 우리가 이렇게 진행을 한다 라고 생각을 해주시면 좋을 것 같습니다 여기서 추가적으로 데이터의 인덱스는 위에다가 X에다가 이런 식으로 적는 것도 제가 알려드리긴 했었죠 그래서 뭐 이런 식의 노테이션들이 사용이 될 거구나 라고 생각을 해주시면 좋을 것 같습니다 그래서 이번 시간에는 좀 간단하게 레이어의 개념과 그 다음에 Dense Layer 좀 이론적인 내용들이었죠 Dense Layer의 개념 그 다음에 Dense Layer가 어떻게 그 전 레이어와 연결이 이루어져 있는지 그래서 전부 다 촘촘히 전부 다 연결돼 있는 게 바로 Dense Layer라고 했었죠. 그 다음에 노테이션까지 이렇게 좀 Dense Layer를 제너럴하게 표현하는 거랑 노테이션까지 좀 알려드렸습니다. 그러면은 다음 시간에는 우리가 이번 시간에 배웠던 이 개념들을 이용해서 조금 더 구체화시키는 과정을 한번 진행해 보도록 하겠습니다. 그럼 다음 시간에 뵙도록 하겠습니다. 수고하셨습니다.
