월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
선생님, 질문이 있습니다.
선생님, 이번에 Kernel과 Filter 차이를 설명하셨는데, 제 이해가 맞는지 검토를 부탁드려도 될까요? 우리가 보통 color image는 R,G,B 총 3개의 (28,28,1) 이미지가 결합이 된 형태이니까 이를 묶어서 (28,28,3) 이렇게 표현을 하고 흑백 이미지의 경우에는 그냥 (28,28,1) 이렇게 표현하잖아요? 그렇게 되면 각각 Channel의 개수는 3,1이 되는 것이구요. 만일 11:54의 Conv2D 조건에서 Input이 RGB 이미지로 주어진다면, 0) 일단 공통적으로 Input (28,28,3)에 대한 Batch 크기는 논외로 여거두고, 1) kernel 정방행렬 한 개를 나눠서 생각해보면 크기는( 3,3,1) 이 되는데, channel 수에 맞추기 위해(RGB) 결국 (3,3,3)이 되는 것이고, 2) filter의 개수가 4개이기 때문에 이 (3,3,3) 크기를 갖는 kernel이 총 4개가 존재한다 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 반면 흑백 사진 (28,28,1) 의 경우 0) 공통적으로 Input (28,28,1)에 대한 Batch 크기는 논외로 여겨두고, 1) kernel 정방행렬의 크기는 일단 (3,3)으로 주어지는데 Channel 수에 맞춰야 해서 (3,3,1)이 되는 것이고, 2) filter의 수가 4개이기 때문에 (3,3,1)의 크기를 갖는 kernel이 총 4개가 존재한다 이렇게 흐름으로 나눠서 생각이 되는데 어디부터 잘못이고 어디까지 이해가 잘 되었는지 짚어주시면 감사합니다ㅜㅜ!!
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
질문이 있습니다. ONE HOT 인코딩 CATEGORICAL
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 좋은강의 감사드리며 틈틈히 보고있는 학생입니다... 질문은 크게 두가지 입니다. 첫번째로 다중분류에서 카테고리컬 CROSSENTROPY를 쓸때 ONEHOT 인코딩을 해줘야 되잖아요 이것은 제가 이해하기론 LOGIT을 하고 소프트맥스 적용후 확률값을으로 나온 값을 ONEHOT인코딩으로 하나만 1로 나머지 0으로 바꾼다고 이해하는 것이 맞는지요 둘째로 ONEHOT인코딩을 적용 안했을때 SPARSE 카테고리컬을 써야 된다고 하셨는데 그러면 애초에 전처리때 LABEL을 ONEHOT 인코딩 안해도 되는 SPARSE 카테고리컬을 항상 쓰는게 낫지 않나요?? 그냥 카테고리컬은 늘 ONEHOT 인코딩을 전처리 해줘야 되는 거잖아용
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
image classication에서 cross validation 관련 질문
안녕하세요. 강의 잘 듣고 있습니다. 머신러닝 완벽 가이드에서 CNN fundamental 편까지 잘 들었습니다. 강의 내용을 바탕으로 plant image classfication 에 cross validation을 적용해보려고, 돌려보면 3번째 폴드를 어느 정도 돌고 나서는 OOM 이슈가 발생하는데 메모리 부족 현상을 해결할 수 있는 방법이 있을까요? 개인 워크스테이션을 사용하는데 cross validation을 적용하지 않으면 원활히 돌아가는데 KFold를 적용해 5 폴드 설정 후 시행하면 OOM 이슈가 발생하네요. 좋은 답변 혹은 팁 부탁 드리겠습니다. 감사합니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
Keras train test split
강사님, 항상 좋은 강의 감사합니다. Keras에서는 train test split을 안하고 모든 데이터를 학습시켜도 되나요? 코드에서 train데이터와 test데이터를 나누는 코드가 없는 것 같아서 여쭤봅니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
선생님, 질문이 있습니다.
선생님, 강의 잘 듣고 있습니다. 다름이 아니라, get_train_valid_test_set 함수에서 이해가 잘 되지 않는 부분이 있어서 질문을 드립니다. 특히 검증 데이터에 대해 train_test_split 내장함수를 사용하는 이유는 말그대로 훈련셋과 테스트셋을 나누기 위함인데 (X_train,X_test,y_train,y_test)이렇게요그런데 왜 좌항에서는 val_images, val_oh_labels로 각각 검증셋에 대해 return값이 전달되는 것인지 이해가 되지 않습니다. 감사합니다. def get_train_valid_test_set(train_images,train_labels,test_images,test_labels,valid_size=0.15,random_state=2021): train_images,train_oh_labels=get_preprocessed_ohe(train_images,train_labels) test_images,test_oh_labels=get_preprocessed_ohe(test_images,test_labels) #검증 데이터 tr_images,val_images,tr_oh_labels,val_oh_labels = train_test_split(train_images,train_oh_labels,test_size=valid_size,random_state=2021) return (tr_images,tr_oh_labels),(val_images,val_oh_labels),(test_images,test_oh_labels)
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
8:19 질문있습니다.
1."0으로 최적 수렴~~"부터는 이해가 잘 안됩니다 쌤. 2. Residual blok의 target이 0이면 이미지 학습은 어떻게 진행되는 건가요? 기존에는 사람이면 사람이미지를 주고 지도학습을 하는데 이번 경우는 그냥 숫자 0이 target 값이잖아요. 이런상태에서 입력 이미지의 FM을 어떤 기준으로 연산되는지 알고 싶습니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
안녕하세요 선생님
항상 좋은 강의 감사합니다. 해당 강의 전내용을 다 듣고 tensorflowr가 조금은 익숙해져서 torch를 공부중인데 utils.Sequence가 torch에서 from torch.utils.data import Dataset 과 같은 역할이라고 생각해도 될까요? 매번 좋은 강의 감사드립니다 :) 추운 겨울 몸 조심하세요 ㅎㅎ
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
선생님, 질문이 있습니다.
선생님, 강의 항상 잘 보고 있습니다. 다름이 아니라 이번에 제가 관심이 가는 논문을 하나 정해서 읽고 있는데, 머신러닝 수학에서 사용하는 표기법에 대해 정말 아는 바가 없어서 난항을 겪고 있습니다ㅜ.ㅜ 혹시 이에 대해 어떻게 읽는 것인지 도와주실 수 있나요? 일단 사진 상으로 표기된 식들을 올려드릴텐데 Mq Wm 이런 것들? Mns 아래 첨자로 표기되는 것들이나 O안에 x나 +가 들어가는 형태 그리고 bi E R1 등 뭔가 집합 기호처럼 보이는 것들 Wm E RkxC 이런 것들에 대해 이해가 되고 있지 않고 있습니다. 그리고 혹시 이런 표기법에 대해 한번 정리할 수 있는 과목이나 참고 자료(서적 등)에 대해서도 혹시 가능하시다면 알려주시면 감사합니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
모델 불러와서 evaluate하기
안녕하세요 선생님 모델을 학습 후 model.save를 이용하여 mh5형식으로 저장을 하여 추 후에 활용 하려고 할때 model.save를 이용하여 모델을 저장 후에 학습한 모델을 load_model 함수를 이용하여 불러와서 활용하려고 할 때 저장된 모델을 불러와 evaluate 또는 prediction 함수를 활용 하면 어떤 가중치가 적용되는지 궁금합니다. 예를들어 1. model.compile에 있는 loss 기준으로 가장 낮은 에폭의 가중치를 가져오는지? 2. earlystop를 활용 했을때는 EarlyStopping의 monitor에 들어간 밸류를 기준으로 가장 좋은 가중치를 불러오는지 답변 부탁드립니다. 감사합니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
다음 강의 관련 계획이 궁금합니다.
늘 많은 것을 알려주시는 권철민 선생님, 감사합니다. 매번 볼때마다 다른 것을 배워가는 기분이라 늘 좋습니다. 얼핏 지나가는 질문들을 보니, 질문게시판에서 선생님께서 GAN을 계획하고 계시다거나, 10~11월에 새 강의를 기획중이라고 답변하셨던 것 같습니다. 인프런과의 계약상 말할 수 없다면 아쉽지만, 선생님의 팬(?)으로서 시기나 컨텐츠를 어떻게 잡고 계신지를 여쭙고 싶습니다. 답변이 어찌됐든 늘 좋은 가르침 감사합니다 선생님!
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
Dense 쪽에서 input channel과 output channel을 똑같이 설정하는 이유가 무엇인가요?
안녕하세요 Dense(512, 512)와 같이 굳이 채널을 같게 해서 출력을 내보내는 경우의 의미가 뭔지 알 수 있나요? 512x512로 파라미터만 커지고 차원 압축 개념이 없어서 비효율적일 것 같습니다
- 해결됨딥러닝 CNN 완벽 가이드 - Fundamental 편
선생님, 질문이 있습니다.
선생님, 늘 강의 잘 듣고 있습니다. 1) 결론적으로 (None,784)로 표기되는 이유가 프로그래머가 Batch_size를 어떻게 가져갈 지 모르기 때문에 None으로 표기하는 것일 뿐인가요? 2) 이게 맞다면, Input X는 만일 Batch_size가 32로 설정이 되어 있다면 세로 784, 가로 32가 되는 것이라고 이해를 해도 되는 것이죠? 저는 이 강의를 듣는 도중 (28,28)을 Flatten을 통해 784로 변환을 하면, 어 그럼 한 장(열벡터) 대해서만 Network를 통과시키는 것인가?라고 생각을 하고 있었는데, 강의가 20분이 띡 되는 순간 그게 아님을 깨달았습니다. 제가 제대로 이해하고 있는게 맞을까요? 제가 이해한 것이 맞다는 전제 하에, 3) dot연산을 위하여 (Batch_size,784)에 대한 그 W[1](1층에서의 가중치 배열)사이즈가 (784,100)이 되는 것으로 이어질 수 있나요? 그래서 78400이 나오는 것이구요(bias제외)4) 이게 표기가 약간 헷갈리는데 shape가 (세로의 길이,가로의 길이)가 아니라 (가로의 길이,세로의 길이)인 것인가요? 아뭔가 여기서 또 논리적으로 맞아떨어져야하니 혼동이 살짝 되는군요 ㅜㅜ tmp = np.array([[1,2,3],[4,5,6]]) tmp.shape 하면 (2,3)이 나오는 것으로 보아 (row,col)의 통상적인 뜻으로 이해할 수 있는데 이게 흐름이 딱 들어맞으려면 (784,Batch_size)로 이해가 되어야할텐데 그렇게 되면 제가 여태 이해한 것과 양립할 수 없게 되는 결과로 이어져서 답답합니다. 오늘 잠을 못잘 것 같습니다ㅜ 5) tensorflow.keras.metrics 에는 Accuracy 말고도 F1_score나 그 재현율 정밀도 기반으로 만들어지는 다른 것들을 포함하고 있는 것이죠? 감사합니다ㅜㅜ!
- 해결됨딥러닝 CNN 완벽 가이드 - Fundamental 편
선생님, 질문이 있습니다.
시간 15:11에서 결국에는 1,2과정을 반복하게 된다면 각 신경망에서 구했던 미분값을 cache하여 저장해뒀다가 역전파의 과정에서 활용을 하거나 하지는 않나요? 물론 GD를 반복하면서 각 층의 가중치 배열의 값들이 계속 update가 될테지만 어차피 같은 대상에 대하여 같은 미분 연산을 하게 되니까요 무언가 dynamic programming처럼 각 층의 각 노드별로 결과값을 저장해두면 역전파 시 속도가 향상될거같다고 추측은 해보는데 이게 맞나요?? 감사합니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
선생님, 질문이 있습니다.
선생님, 강의 잘 듣고 있습니다. 6:54에 나와있는 그림에서요 [x1,x2,x3] [o1 o2 o3] 이렇게 개략적으로 표현하였지만 사실 저게 shape가 (1,3)이 아니라 데이터의 개수에 따라 (N,3)이 될 수 있는거죠?
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
선생님, 질문이 있습니다.
선생님, 안녕하세요, 질문이 있습니다. 3:38 시간대에서 혼자 생각하다가 의문이 생겼는데요, 결론부터 말씀드리자면 W가 300개가 된다는 말의 의미가 정확하게 무엇인지 모르겠습니다. 질문1) 정확히 W는 모든 가중치를 모아놓은 vector를 말하는 것인가요? 질문2)feature vector(저번 질문 때 선생님께서 용어 정리를 부탁하셨는데, boston 기준으로 예를 들자면 RM의 모든 506개 수치가 들어간 열벡터 LSTAT의 506개 수치가 들어간 열벡터 좀 뭔가 굴비?를 엮은 한 줄로 feature vector 정의를 이해하시면 될 듯 합니다.) boston의 예시로 돌아와서 만일 bostonDF에 feature가 100개가 있다고 친다면 원래 input 데이터셋의 shape는 (506,100)이 되는 셈이잖아요?세로크기506,가로크기100 그렇게 되면 W의 shape은 (1,100)이 되는 것인가요? 그렇게 보면 하나의 Node를 통과할 때 단계가 1) np.dot(W.T,X)+bias를 하고 2) 이를 활성함수의 인자로 넘긴다 이것인데요, (506,100) 과 (1,100)을 내적하려면 W를 transpose해주고, 그 결과 (506,1)이 나올 것이고, bias는 각각 더해주면 될 것이구요 층 1에서 노드가 3개일 때, 한 층의 각 노드 안에서는 W=[w1,w2,...wm]와 모든 bostonDF의 각 feature에 대해 node 연산 작업을 완료하게 되면 (506,3)이 나오게 되고 이게 다음 층으로 넘어가는거라고 봐야할까요? 제가 이해한 바가 맞을까요? 질문3) 그럼 결국 층이 1개이고, node가 3개라 가정하면 퍼셉트론에서는 위의 과정을 단 한번만 했었는데 위의 가정에 따르면 같은 과정을 3번하게 되는 거잖아요? (506,100) -> node1 -> (506,1) (506,100) -> node2 -> (506,1) (506,100) -> node3 -> (506,1) 그런데 각 층마다 같은 W=[w1,w2,...wm]을 가지고 같은 연산을 하면 정확히 같은 작업을 노드의 개수만큼 반복하는 것 밖에 안되는 것 같은데, 제가 어디서 이상하게 이해를 하고 있는지 짚어주시면 감사합니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
extracted feature를 통한 clustering 질문드립니다
안녕하세요. 저번에 건축가 관련 classification으로 질문 글 남겼었는데, 추가적으로 진행하다가 막히는 부분이 있어서 질문 드리러 왔습니다~~ 저번에는 accuracy를 올리는데에 집중 하였는데, 데이터셋에서 확연하게 특징이 드러나지 않아서 73.5%정도로 정확도는 만족을 하고 결과물을 해석하는 방법에 집중을 해보고 있습니다. 제가 하고 있는 프로젝트는 건축가들 중에 우수한 상을 받은 40명 정도의 건축가가 디자인한 빌딩들의 이미지를 모아서 cnn으로 feature들을 추출하고 여기에서 나타나는 유사성들을 class마다 비교하거나 비슷한 특징을 보이는 건축가들을 clustering하는 등의 작업을 목표하고 있습니다. 조금 더 말씀드리자면 각 건축가마다 '시각적인' 부분에 집중하여 디자인 유사성을 조금 더 객관적인 방법 (through the lens of artificial intelligence)으로 조사해보고자 함입니다. 예를 들면, 모더니즘, 해체주의 등의 스타일을 시대적, 아이디어적 등 다양한 factor들을 고려하여 분류하지만 제 개인적인 생각으로는 이 부분이 주관적인 요소가 많다고 생각이 들어서 조금 객관화시켜 보고 싶었습니다. 먼저 제가 해본 방법은... 마지막 dense layer의 인풋값들을 pca로 차원축소하고 거기에 나온 값들을 클래스로 평균을 내어서 클래스를 대표하는 포인트를 2차원 좌표값으로 만들어서 클래스간의 유사도 비교(?)를 해보는 것이었습니다.. 하지만 제 도메인 지식으로 당장 직관적으로 와닿는 결과물이 아니라서, 모델이 어떤 특징과 스타일을 추출하긴 했지만 인간의 눈으로 바로 직관적으로 이해할 수 있는 것이 아니다라는 결론을 내리고, 더 좋은 방법이 없을까 찾아보게 되었습니다. (validation 데이터로 pca 후, 평균) t-sne로 해보았을 때에는 명확하게 뭔가가 나와서 분명 비선형적인 관계가 있는 것 같긴 합니다... 코사인 유사도도 해보았는데, 벡터가 고르게 펼쳐져있는게 아니라서 range가 -1~1을 커버하지 않더라구요... (-1~1로 노멀라이즈는 코사인이 스타일의 반대방향도 의미하는걸 고려해봤을때에 적절해보이지 않는 방법이라고 생각해서 하지 않았습니다.) 여기에서 dense 레이어에 들어오는 인풋을 pca하면서 손실되는 정보들이 많다는 생각이 들어서... CNN backbone에서 나오는 피쳐값들을 (약 1700dim) 오토인코더의 인풋으로 써서 64차원 정도로 압축하고 (오토인코더를 pca처럼 사용해보았습니다) 이 벡터를 사용해보고자 했습니다. 64차원 벡터들의 코사인유사도 결과입니다 뭔가 클래스마다 비교가 되기는 하는데 1:1 비교에 초점이 맞춰진거 같아서... 조금 더 큰그림을 보고 싶은 상태입니다.. 일단 오토인코더가 피쳐들을 정말 피쳐들을 학습하는게 맞을까?라는 생각이 들었습니다. 오토인코더가 정말 피쳐를 학습한다면 같은 클래스끼리는 비슷한 위치의 latent space에 존재해야 한다고 생각했고, 이것을 추상적으로 증명(?)하기 위해서는 클래스마다 벡터들을 모으고 그 벡터들의 convex hull을 구해서 (클래스의 bounding box를 찾는 개념(?), 각 클래스마다 벡터 스페이스에서의 부피값(?)) 이것들의 부피를 구하고 클래스마다 비교하면 어떤 클래스가 sparse하게 존재하고 어떤 클래스는 dense하게 밀집되어 있는지를 비교할 수 있을 것 같은데... 64차원에서 convex hull까지는 구했는데 어떻게 부피(?)를 구할지 기술적(?), 수학적(?)인 한계에 부딪혀서, 일단 64차원이 아닌 pca된 차원에서 해보았는데,... 큰 발견을 하지는 못한거 같습니다. 이것저것 제가 시도할 수 있는 것들은 많이 해보았는데, 조금 막다른길에 부딪힌것 같아서 혹시나 제가 모르고 있는 부분이나 놓치고 있는 부분이 있는지 여쭤보고 싶어서 질문글 남깁니다ㅠㅠ 각각의 인풋들을 오토인코더에서 나온 64차원의 feature들과 그래프로 연결하고 여기서 weight가 낮은 값들의 연결을 끊는 방식(?)으로 하면 연결이 끊겨져 나가면서 자연스럽게 클러스터링 비슷하게 될 것 같지 않을까...하는 추상적인 생각도 떠오르는데 명확하질 않은 것 같네요...
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
cut mix 질문 다시 드립니다.
안녕하세요 교수님 저번에 cutmix에 대해 질문한 학생입니다. 추천해주신 링크를 봤는데 cutmix가 generator안에 들어가서 쓰이는데 PlantDataset()에 들어가는게 맞나요? 또한 cutmix를 한 이미지 라벨을 확률적으로 큰 것을 배정해준다고 봤는데 이를 어떻게 배정해주는 것인지 궁금합니다... 수업 이외의 질문을 해서 죄송합니다
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
선생님, 질문이 있습니다.
선생님, 강의 잘 보고 있습니다. 몇 가지 질문을 드리고자합니다. 1) 이건 좀 간단한 확인일 수 있는데, 강의 5:58초 슬라이드에서 결국에는 x1,x2이런게 어떤 단항, 혹은 수치가 아니라 선형대수에서 말하는 하나의 열벡터라고 봐야되는 것이죠? 그렇게 되면 xn만큼 가중치 행벡터가 존재하게 되는 것인데 이 계산을 하려면 행렬이 맞아야 하니까 가중치 행벡터의 WT를 내적해야 되는 것이죠? 그렇게해서 dot 연산에 의해 저 weighted Sum을 구하는 것이라고 봐도 무방한가요?2) 특정 N[L]의 신경망이 있다고 하였을 때 x1 n[1]1 x2 n[1]2 n[2]1 ..... x3 n[1]3 n[2]2 x4 n[1]4 2-1) n[1]1은 x1~x4까지 저 퍼셉트론 과정에서의 연산을 하는 것이고, 이 연산의 결과는 또 다시 열벡터가 되는 것인가요? 2-2) 그리고 각각 저 1층에서 모든 뉴런에 대하여 똑같은 연산을 전부 한다고 봐도 괜찮은 것이죠? 제가 요새 갑자기 받아들이는 정보량이 너무 많아져서ㅜ.ㅜ 개념 정리가 필요할 것 같아서 질문드렸습니다. 감사합니다 선생님!
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
선생님, 질문이 있습니다.
epoch 횟수를 증가시키면 증가시킬수록 당연히 최적의 파라미터 벡터를 찾아낼 수 있을테지만 그에 따라 과적합의 문제도 발생할 수 있잖아요? 그래서 만일 오차율이 이전 epoch보다 더 커지는 시점이 오게 되면 학습을 중지시키는 것이구요, 이게 earlystopping일텐데 보통 이런 경우에서만 놓고보면 iter_epoch가 증가함에 따라 과적합 / 최적 파라미터를 찾는 과정?이 반비례의 양상을 띄게 되잖아요? 그런데 earlystopping의 요지는 어디까지나 경험적으로 이전의 오차값과의 비교를 통해 과적합이 될 것 같으면 학습을 중지시킨다는 것인데,만일 N차원의 그래프에서는 이 '학습의 중지'가 단지 국소적인 부분일 수도 있는 가능성이 있잖아요? 다시 말해1전체 양상의 일부만을 놓고봤을 때에는 일시적으로 오차율이 증가했을 수도 있는데, 이런 문제는 어떻게 처리를 하나요? 다시 말해2 인간은 전체 그래프를 볼 수 있어서 더욱 알맞는 파라미터 벡터를 찾아낼 수도 있을 가능성을 알고 있을 텐데도 불구하고, 모델은 early stopping에 의거하면 단지 일부만의 오차 증가일 뿐인데, 그 오차 증가를 캐치하는 바람에(지금까지의 학습 경험에 의거) 적절하지 못한 시점에서 학습을 중단하게 될 수도 있을텐데, 이 문제는 어떻게 처리할 수 있는지 궁금합니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
선생님, 질문이 있습니다.
만약에 feature vector가 N개가 존재하게 되면 그에 상응하는 회귀계수의 vector의 shape은 (1,N)이 되어야 하는 것으로 이해를 해도 되나요?순전파를 할 때에는 그러면 xn은 하나의 벡터 w1*x1 w2*x2......wm*xm을 선형대수 연산으로 도출하는 것이라고 이해해도 될는지 여쭙고 싶습니다. 감사합니다!