기록실
채팅 2
게임 0
유물

파이썬 하는 애들 있으면 이게 뭐인지 좀 알려주지 [18]

Minerals : 173,650 / Level : 일병 일병
2021-11-28 21:40:25 (4년 전) / READ : 685
    def linear_forward(A, W, b):
     Z = W.dot(A) + b
     assert(Z.shape == (W.shape[0], A.shape[1]))
     cache = (A, W, b)
     return Z, cache

    딥러닝 강좌 보고 있는데 나와서
    신고
    • 댓글이 18 개 달렸습니다.
    • 4년 전
      알려주지 왜 비추 주고 그러냐
    • 4년 전
      진심으로 길게 조언해주는 사람들 말은 듣기가 싫죠?
    • 4년 전
      @Brocoli22딥러닝 가르쳐 주는 거면 길게 써도 다 읽는데
    • 4년 전
      @가네்수학없이는 아무리해도 안된다고 몇번을 말씀드려요
    • 4년 전
      @Brocoli22그래서 인공지능을 위한 수학 읽고 있는데
    • 4년 전
      @가네்그걸로 먼저 선형회귀까지는 공부해보시고 그 다음에 multi layer perceptron 찾아보십쇼 그게 제일 이해가 빠른 길일거에요 지금 베이스로는 설명드리려면 책한권써야됩니다
    • 요원, 지현잉 핫빈
    • def는 파이썬에서 함수를 정의내리는 명령.
      함수가 뭔지 모르실 것 같아서 좀 더 말하면, 함수라는 건 어떤 입력값을 입력했을 때 어떤 출력값이 나오는 것. 이걸 함수라고 함. 예를 들어 f(x)= 3x라는 함수가 있다면 1을 입력했을 때 3을 출력하고, 2를 입력했을 때 6을 출력하는 함수임.

      파이썬에서 함수를 정의내릴 때에는 def라고 쓴 다음 오른쪽에 함수 이름을 적음. 이때 함수 이름은 그냥, 적당한 텍스트로 적으면 됨. 여기서는 함수이름을 linear_forward라고 정했네. "linear forward"라고 적은건, 아마 linear map을 적용하고 있고, 또 forward passing을 하고 있기 때문이라고 생각됨.아무튼 그건 중요한 게 아니고 함수를 정의내리고 있음.

      이어서 말하면 def라고 쓴 다음 함수이름을 적은 뒤에는 괄호 속에 입력값의 형태가 어떻게 되는지 적어야함. 아까처럼 함수가 f(x)=3x라면 입력값이 하나겠지만, f(x,y)=x+sin y라는 함수같은 거면 입력값이 두개라고 볼 수 있겠지. 즉 독립변수의 개수를 생각해야 함.

      만약 f(x) = 3x를 정의하고 싶다면

      def f(x)
          3*x
          return

      f(x,y)=x+sin y를 정의하고 싶다면
      def f(x,y)
          x+sin y
          return

      라고 하면 됨. 알겠지? 흠.. 기본적인 수학을 알고 있다면 당연히 알겠지만, 아마 님은 모른다고 하겠지. 암튼 심심하니깐 설명 더 하겠음.

      여기선
      def linear_forward(A,W,b)
      라고 적혀있네. 그러니까 이 함수를 정의할 때 세 개의 독립변수를 생각하겠다는 뜻이네. 이때 주의할 건, 아까 f(x)나 f(x,y)를 정의할 때는 x,y가 임의의 실수였어. (뭐 복소수여도 상관은 없겠지.) 근데 사실 함수의 독립변수로는 아무 거나 들어가도 됨. 정확히 말하면, 파이썬이 인식할 수 있는 어떤 형태의 자료구조여도 상관없음.
    • 4년 전
      @수줍은질럿그렇구나
    • 4년 전
      @수줍은질럿근데 자료구조가 뭐하는거야?
    • @가네்내가 말한 건 '자료구조'라기보다는 '자료형'에 가깝겠네 미안.
      파이썬의 자료형에는 여러 가지가 있어.
      정수 형태의 값을 의미하는 INT가 있고
      실수 형태의 값을 의미하는 FLOAT이 있고
      문자열 형태의 값을 의미하는 STR이 있고
      수열 형태의 값을 의미하는 LIST가 있고
      집합 형태의 값을 의미하는 SET이 있고
      사전형 형태의 값을 의미하는 DICTIONARY(맞나)가 있고
      암튼 많거든.

      지금 예에서는
      A와 W가 숫자라고 한다면, A와 W는 각각 FLOAT 형태 혹은 INT 형태의 자료가 될 거야.
      A와 W가 벡터라고 한다면, A와 W는 각각 LIST 형태의 자료가 될거야.
      A와 W가 행렬이라고 한다면, A와 W는 각각 LIST 형태(이긴 한데, 정확히 말하면 LIST OF LIST)의 자료가 될거야.

      그런 식으로, 독립변수인 A와 W는 어떤 형태의 자료형이건 들어갈 수 있다는 거지.

      자료형에 대해 궁금하다면 구글에다가 "파이썬 자료형"이라고 쳐봐라. 아주 많이 나온다.
    • 4년 전
      @수줍은질럿그러면 한번 파이썬 자료형 찾아봐야겠다
    • 아마 아래 정의된 형태를 보니깐 A와 W는 행렬이거나, 적어도 벡터인 것 같아.

      아무튼 아래 줄을 보면

      def linear_forward(A, W, b):
       Z = W.dot(A) + b

      라고 되어 있네. 여기서 "W.dot(A)"는 W와 A를 dot product 한다는 뜻이야. 아마 수학을 모른다니깐 뭔말인지 모르겠지만, 고등학교 교과과정으로 치면 벡터의 내적에 해당되겠지. 두 벡터 W와 A를 내적하겠다 이런 의미인 것 같아. (파이썬에서, 비슷한 명령어로 '@'라는 명령어는 내적을 포함한 행렬곱을 의미하기도 하는데 .dot이 내적만을 의미하는지, 내적 + 행렬곱을 의미하는지는 잘 모르겠어. 궁금하면 직접 확인해보셈)

      그리고 거기다가 b를 더하네. 그럼 이게 뭐냐? 뭐 말그대로 벡터 W와 A를 내적하고 거기다가 b라는 스칼라를 더하는 꼴이 되겠지. (혹은 행렬 W와 A를 곱하고 거기다가 벡터 b를 더하는 꼴이 되겠지.) 단순한 수학적인 내용이야. linear map이라고 해도 되겠고 (정확한 의미로는 linear map이 아니라서 affine map이라고 하는 게 정확하겠지) 만약 A와 W가 스칼라라면 중1때 배우는 일차함수와 완전히 의미가 같겠지.

      근데 이걸 왜 하고 잇냐? 뭐.. 그냥 명령어들의 나열이야. 함수의 결론, 즉 종속변수를 뱉어내는 부분은 return에 관한 부분이야. 중간에 문자열들이 더 있지만 이건 좀 무시하고 맨 밑 행으로 가봐. 그러면
       return Z, cache
      가 나오네. 이게 무슨 뜻이냐 하면, 이 함수의 종속변수, 즉 결과값을 Z와 cache로 정하겠다는 뜻이야. cache라는 건 뭐.. 잘 모르겠어. 걍 Z에 대해서만 설명한다고 하면,

    • 이 함수는 결과적으로 f(A,W,b) = AW+b 라는 함수인거야. 아까 말했듯 A, W는 (차원이 같은) 두 벡터이면서 b는 스칼라일 수 있고 아니면 A,W는 (적당히 곱해지는) 두 행렬이면서 b는 (적당히 더해지는) 벡터일 수있겠지.

      f(A,W,b) = AW+b 라는  함수를 파이썬으로 정의하려면

      '''
      def linear_forward(A, W, b):
       Z = W.dot(A) + b
       return Z
      '''

      이 된다는 거지. 님 어그로꾼인 거 알아서 얼마나 알아들으려고 하는지는 모르겠는데. 암튼 심심해서 적어봤어. 
    • 4년 전
      @수줍은질럿딥러닝 가르쳐 주면 진짜 갈려고 하는데 아직까지 안 가르쳐 줘서 그래
    • @가네்공부는 누가 가르쳐서 하는 게 아님. 본인이 하는거지.
      근데 님은 배울 자세가 안되어있음. 걍 잘 찾아보고 하면 돼. 정말 모르겠다 싶은거면 물어보고
    • 4년 전
      @수줍은질럿그러면 한번 좀 찾아보면서 해 봐야겠다
    • 4년 전
      @수줍은질럿ㅈㄴㄱㄷ) 유튜브에 파이썬 초보강의 많아..
      기본은 알고 물어보자
    글목록 이전글 다음글
    글쓰기


    공부 인증 한 시간당 10만 미네랄 드려요. (1)알콜솜 25.12.12추천 1
    게시판 HTML 태그 사용 정책 변경 안내 (5) YGOSU2 25.12.29-
    [12/30개강 - 자부담금 없는 마지막 국비교육] 개발자 / 쇼핑몰&마케팅 과정 아이티윌부산27225.12.24-
    다들 무슨 공부해요 (2)ethemon12625.12.23추천 2
    하루종일 공부해야 8시간이구나 (1)재미있는토스13925.12.20추천 1
    공부재밌다재미있는토스9625.12.20추천 1
    [인증] 오늘 공부 단 2시간.. (2) 알콜솜15225.12.20추천 1
    [인증] 아침공부완료 (1)재미있는토스11225.12.19추천 1
    님들 공부하는 중? (1)재미있는토스11425.12.17추천 1
    그 뭐지 중국어는 번체씀 간체씀??? (2)별볼일없는X11825.12.16추천 1
    [자부담금 없는 마지막 전액국비교육] 개발자 / 쇼핑몰&마케팅 과정 아이티윌부산10325.12.16-
    기능장이 기사자격증보다 위임? (2)RocketLab14525.12.16추천 1
    HSK 있는 사람 있음?타나타노트10725.12.15추천 1
    [포커]기회가 된다면 포커 한번 배우고싶네요.. 제대로 (1)김효원12225.12.13추천 1
    남는게 없다고 생각드는 공부 (6) 알콜솜13725.12.12-
    수학은 진짜 왜케 어려울까요 (1)재미있는토스16525.12.12추천 1
    🐧 캐드 학원 등록했습니다.. 🐧 (2) 암퀴24925.12.12추천 3
    공부 인증 한 시간당 10만 미네랄 드려요. (1)알콜솜16025.12.12추천 1
    단기기억을 장기기억으로! (2)알콜솜16225.12.12추천 1
    사람의 이해 및 암기능력의 전성기는 몇살 때 일까요 알콜솜11725.12.12-
    [질문] 제가 공부하는 과목 중에 줄글을 그대로 달달 외워야하는 과목이 있는데알콜솜11425.12.12-
    공부게시판 ㅎㅇㅌ재미있는토스13425.12.12추천 1
    매일 순공 10시간 목표로 가요 -ㅂ-.. (2)알콜솜14125.12.12추천 1
    2학기 마치는 12월 18일부터 공부들어갑니다. (3)알콜솜12025.12.12추천 1
    공부 열심히해야 취업하지... 오잉뜨14425.12.05-
    [부산-국비무료교육] 비전공자/초보자도 가능한 개발자 과정/쇼핑몰 과정 아이티윌부산13125.12.02-
    수능 ㅎㅇㅌ구름비바람17225.11.13-
    글쓰기