브로드캐스팅(Broadcasting)은
파이썬 라이브러리 NumPy가 산술 연산 중에 다른 모양의 배열을 처리하는 방법입니다.
만약, 배열 a(3)와 b(1)를 곱한다고 생각해 봅시다.
배열의 개수가 다르기에, 원래라면 연산할 수 없습니다.
하지만 브로드캐스팅(BroadCasting)을 통하여,
2가 복사되어 곱해져 result가 계산되었습니다.
(실제로는 복사되지 않았습니다. 계산상으로만 복사된 것입니다.)
브로드 캐스팅(BroadCasting)을 사용한 아래와 그러지 않은 위를 비교해 보면,
아래쪽이 훨씬 더 효율적인 메모리 사용이 가능합니다.
위와 같이, 행이 아닌 열에도 브로드캐스팅(BroadCasting)은 활용됩니다.
하지만, 파이썬에서 배열(행렬)을 계산할 때 브로드 캐스팅(BoardCasting)이 항상 이뤄지는 건 아닙니다.
위의 그림과 같이,
후행 차원이 맞지 않는다면 브로드 캐스팅(BoardCasting)이 이뤄지지 않고 오류가 뜹니다.
--> 위 자료에서의 후행 차원은 열의 개수를 뜻함
브로드 캐스팅(BoardCasting)이 꼭 세로 방향으로만 이뤄지는 건 아닌데,
위 자료처럼, np.newaxis로 새로운 축을 삽입시켜,
가로, 세로 2방향에서 브로드 캐스팅(BoardCasting)이 일어나는 경우도 있습니다.
--> 위의 그림 같은 경우, a의 후행(열의 개수)이 b의 후행(열의 개수)의 공약수 관계여야 합니다.
이외에도, 여러 가지 경우의 수가 많지만, 여기까지 간략하게 알아보고 강의 내용으로 돌아가 봅시다.
위의 자료는 실제 여러 음식들의 영양소에 따른 칼로리 수치를 나타낸 데이터입니다.
A를 3 * 4 배열(행렬)이라고 하고,
percentage를 구하기 위해, 100A를 cal.reshape(1,4)로 나눠봅시다
--> reshape()는 행렬을 전치시킨다는 의미입니다.
실제 프로그래밍 결과,
브로드 캐스팅(BroadCasting)을 통해, 위와 같은 결과가 나온 걸 확인할 수 있습니다!
처음 보았던 블록 그림의 내용을 숫자로 표현하면 , 위와 같습니다!
특별한 경우가 아닌 이상,
m * n 행렬(=배열)과 1 * n 행렬이 연산된다면, 결과는 m * n 행렬로 나오고
m * n 행렬이 연산되어도, 결과는 m * n 행렬로 나옵니다.
--> 위에서 언급했듯이,
전치(Transpose)를 사용하여 브로드 캐스트가 2개의 방향으로 되는 경우,
결과가 위와 같이 안 나오게 되는데, 다음 글에서 퀴즈를 풀어볼 때 다시 언급하겠습니다.
이상으로, 2주 차 강의가 끝났습니다.
다음 시간부터는 2주 차 강의 내용을 활용하여, 퀴즈와 프로그래밍 과제를 해봅시다!
이 내용들은 모두 coursera에서 앤드루 응 교수님의 강의를 요약정리 및 쉽게 재 풀이하여 적은 글이며,
내용에는 생략되거나 변형된 부분이 많으니 직접 강의를 들어보시는 걸 추천드립니다!
이 글은 상업적 목적이 아닌, 한국에서 인공지능을 배우고 싶은 분들을 위해 적은 교육적 목적에서 작성하였습니다.
'코세라 앤드류 응 AI 강의 리뷰' 카테고리의 다른 글
[인공지능 강의 리뷰] 13 - 프로그래밍 과제 . 신경망 사고방식을 이용한 로지스틱 회귀 모델 만들기2 (고양이 사진 분류기) (0) | 2022.05.16 |
---|---|
[인공지능 강의 리뷰] 12 - 프로그래밍 과제 . 신경망 사고방식을 이용한 로지스틱 회귀 모델 만들기 (고양이 사진 분류기) (0) | 2022.05.16 |
[인공지능 강의 리뷰] 11 - 신경망 기초 테스트 (Neural Network Basic Quiz) (0) | 2022.05.16 |
[인공지능 강의 리뷰] 9 - 벡터화(Vectorization) (0) | 2022.05.16 |
[인공지능 강의 리뷰] 8 - 로지스틱 회귀 경사 하강법(Logistic Regression Gradient Descent) (0) | 2022.05.16 |
[인공지능 강의 리뷰] 7 - 도함수(Derivative)와 계산 그래프 (Computation Gragh) (0) | 2022.05.09 |
[인공지능 강의 리뷰] 6 - 경사 하강법(Gradient Descent) (0) | 2022.05.09 |