Hỏi & Đáp
8강 수업 내용과 녹음 내용 불일치
안녕하세요 소프트 캠퍼스입니다. 먼저 수강하시는데 불편함을 드려서 죄송합니다. 현재 확인 중에 있으며 빠르게 조치하도록 하겠습니다. 감사합니다.
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 21
Hỏi & Đáp
안녕하세요 소프트 캠퍼스입니다. 먼저 수강하시는데 불편함을 드려서 죄송합니다. 현재 확인 중에 있으며 빠르게 조치하도록 하겠습니다. 감사합니다.
Hỏi & Đáp
우상향으로 이어지는 그래프가 되어야 하는 것이 맞습니다. 영상 마지막에 좌상향 그래프로 그린것은 오류입니다. 우상향 그래프로 보시고 이해해 주시면 되실것 같습니다. 감사합니다.
Hỏi & Đáp
안녕하세요 소프트 캠퍼스 입니다. 질문에 답을 드리겠습니다. X^T 가 Singular일 때 발생하는 현상: 무수히 많은 해 선형회귀에서 X^TX 의 역행렬이 존재하지 않는다는 것은 독립변수들 사이에 완벽한 다중공선성(Perfect Multicollinearity)이 존재하거나, 변수의 개수가 데이터 개수보다 많다는 뜻입니다. 이 경우 데이터를 만족하는 회귀계수(W)의 조합은 단 하나가 아니라 무수히 많이 존재하게 됩니다. 즉, 어떤 방법을 쓰든 '오차 제곱합을 최소화한다'는 목적은 달성할 수 있지만, 그 목적을 달성하는 W와 b 의 값 자체는 고정되지 않고 여러 형태가 될 수 있습니다. 2두 방식의 수학적 차이와 의사역행렬 의사역행렬은 무수히 많은 해 중에서 "계수 벡터의 L2 Norm(길이)이 가장 작은 해"를 찾는 특성을 가지고 있습니다. 질문하신 두 방법은 의사역행렬을 적용하는 '대상'의 구조가 다르기 때문에 최적화 기원(Origin)이 달라져 다른 숫자를 뱉어냅니다. 평균 중심이동 (Centering) 후 의사역행렬 데이터를 평균만큼 이동시켜 b (절편)의 영향을 먼저 제거한 뒤, 독립변수들 간의 관계만 가지고 의사역행렬을 구합니다. 이 방식은 "절편을 제외한 가중치들( w1, w2, ... )의 제곱합을 최소화"하는 방향으로 해를 찾습니다. 1로 채워진 열벡터 추가 (Augmentation) 후 의사역행렬 X 행렬 맨 앞에 1을 추가하여 Wnew = [b, w_1, w_2, ...]^T 구조를 만듭니다. 이 상태에서 의사역행렬을 구하면, 컴퓨터는 "절편 b 를 포함한 모든 가중치의 제곱합을 최소화"하는 해를 찾습니다. 두 방법 모두 오차(Residual)를 최소화한다는 목적은 동일하게 달성하지만, 의사역행렬이 최소화하려는 대상(가중치 벡터의 크기)에 편향(b)이 포함되느냐 마느냐의 차이가 생깁니다. X^TX 가 Singular이기 때문에 이 작은 기준 차이가 완전히 다른 W 와 b 값이라는 결과로 나타나는 것입니다. 만약 X^TX 가 Singular가 아니라면? (Full Rank) 정확히 짚어주신 대로, 만약 X^TX 의 역행렬이 명백히 존재하는 상황(Full Rank)이라면 어떤 방식을 사용하든 수학적으로 완벽히 동일한 W 와 b 가 도출됩니다. 유일한 하나의 해(Unique Solution)가 존재하기 때문에, 중심이동을 해서 구한 뒤 b 를 따로 계산하든, 1을 추가해서 한 번에 구하든 최종 회귀 방정식은 일치하게 됩니다. 본 과정은 선형 대수학을 자세히 다루는 과정이 아니기 때문에 강의에서 언급하는 기본적인 내용만 알고 가시면 됩니다. 따로 선형 대수학을 자세히 공부하시면 더 헷갈리고 어려우실 겁니다. 딥러닝의 수학적인 내용은 가볍고 보고 넘어가시길 권장드립니다. 감사합니다.
Hỏi & Đáp
수업자료 올려 놓았습니다.
Hỏi & Đáp
비슷합니다.
Hỏi & Đáp
업로드 되었습니다.
Hỏi & Đáp
불편을 드려 죄송합니다. 정상 파일로 수정해서 올려 놓았습니다. 감사합니다.
Hỏi & Đáp
안녕하세요. 지금 확인을 해보니 누락된게 맞습니다. 해당 파일은 다른 프로젝트와 동일한 파일을 사용하고 있으니 다른 프로젝트의 파일을 그대로 사용하시면 됩니다. 감사합니다.
Hỏi & Đáp
수정 되었습니다.
Hỏi & Đáp
안녕하세요. 질문 주신 내용은 컬렉션에 관련된 내용입니다. 컬렉션 관련 메서드가 많은 터라 질문 주신 내용은 본 과정에서 다루지 못한점 양해 부탁드립니다. map은 새로운 list를 만드는데 사용하며 filter는 조건에 만족하는 것만 골라서 새로운 리스트를 만드는 메서드 입니다. 아래의 예제를 참고해주세요 fun main() { val numbers = listOf(1, 2, 3, 4, 5) val squared = numbers.map { it * it } println("Original: $numbers") println("Squared: $squared") } fun main() { val numbers = listOf(1, 2, 3, 4, 5) val evenNumbers = numbers.filter { it % 2 == 0 } println("Original: $numbers") println("Even: $evenNumbers") }