guestbook

  1. 비밀댓글입니다

    2019.03.22 07:35 [ EDIT/ DEL : REPLY ]
  2. 강화

    안녕하세요! 전 기계에서 제어 전공인데 강화학습 요새 한창 공부 중 입니다. david교수님 강의보면서 따라가는데 쉽진 않네요 ㅎㅎ 그런데 궁금한게 강화학습할때도 파이썬 텐서플로우 조합이 가장 일반적인가요? 윈도우 사용하는데, 설치도 한번에 잘안되고 찾아보는 자료마다 사용하는 프로그래밍 언어는 다 달라서 뭐로 시작하는게 좋을지.. (주로 매틀랩만 사용했었습니다 전)

    2018.09.11 17:00 [ EDIT/ DEL : REPLY ]
    • 안녕하세요~ 네 강화학습도 파이썬과 텐서플로우등을 사용합니다. 케라스나 gym도 많이 쓰고요. 맘에 드시는걸로 하시면 될겁니다~

      2018.09.11 18:12 신고 [ EDIT/ DEL ]
  3. 비밀댓글입니다

    2017.08.24 21:37 [ EDIT/ DEL : REPLY ]
  4. DBA

    안녕하세요 대소니님!
    캐나다에서 데이타베이스를 공부하고있는 학생입니다!
    Unsupervised learning 에 대해서 질문이있는데 혹시 페이스북 아이디좀 알려주실수있나요?
    감사합니다.

    2017.02.22 17:15 [ EDIT/ DEL : REPLY ]
    • 안녕하세요. https://www.facebook.com/daesony 로 접속하시면 보일거에요^^

      2017.02.22 17:26 신고 [ EDIT/ DEL ]
  5. Cossack

    Python interpreter path는 url 디렉토리 안에 파이썬이 있어야 하는건가요 ?? apache tomcat7에서 project라는 디렉토리를 만들고 root url에 아이피:포트/project 라고 쓰고 연결을 하는데 파이썬 인터프리터 패치에서는 오류가 나옵니다

    2016.12.13 22:00 [ EDIT/ DEL : REPLY ]
    • 아~ 가지고 계신 서버에 python을 별도로 설치하시고 해당 설치 경로를 path로 지정해 주시면 됩니다.

      python과 tomcat과는 연관이 없구요. tomcat과 web url은 옵션사항이라서 셋팅을 해도 되고 안해도 됩니다.
      중요한 내용은 sftp 설정부분이에요^^

      제가 포스팅한 내용은 서버에 설치되어 있는 python을 이용해서 로컬pc에서 원격으로 파일 생성하고 컴파일 및 실행하는 내용이에요.
      그렇게 하면 로컬pc에 중복해서 python을 설치할 필요가 없어지는 것이 주요 내용입니다.

      2016.12.14 08:55 신고 [ EDIT/ DEL ]
  6. Cossack

    혹시 pycharm 설치 부분에서 Web server root URL 이 부분 어떻게 설정하는지 알수있을까요?

    2016.12.08 19:15 [ EDIT/ DEL : REPLY ]
    • pycharm을 설치해서 원격 서버의 파일을 사용하고 실행하기 위한 내용이라 SFTP만 설정하시면 원격 서버의 python 파일을 수정하고 실행할 수 있습니다.

      문의주신 Web server root URL은 서버내에 Web server (tomcat or nginx or Django or Wordpress등)가 설치가 되어 있어야 하고 해당 웹서비스가 구동되는 URL를 셋팅해주시면 됩니다.

      예를들면, 다음과 같은 형식으로 웹서비스의 URL 주소를 셋팅해주시면 됩니다. http://server_ip:port/documetRoot

      저는 서버에 wordpress가 설치되어 있어서 http://52.78.21.74 로 접속하면 허접한 웹페이지 하나가 보이게 되어 있습니다.^^

      언제 이뿌게 만들어놓을런지...흠



      2016.12.09 00:18 신고 [ EDIT/ DEL ]
  7. 비밀댓글입니다

    2016.11.02 22:50 [ EDIT/ DEL : REPLY ]
  8. Coiner

    Coursera의 Machine learning 강좌 듣다가 우연히 블로그 들어오게 되었는데, 정리도 깔끔하게 되어 있고 짧은 영어로 이해가 잘 안되었던 부분들도 명쾌하게 설명되어 있어 너무 감사합니다. 앞으로 자주 방문하게 될 것 같습니다ㅋㅋ 감사합니다~

    2016.10.02 15:40 [ EDIT/ DEL : REPLY ]
  9. BP

    델타(4)는 연결된 선의 weight와 연산이 되어 거꾸로 내려가면서 a(3)의 값과 연산이 되는데 이 때 그냥 a(3)가 아니라 편미분된 a(3)와 연산이 됩니다. -> 포스팅 해주신 내용

    1. BP Weight를 조절하면서 J값을 최소화하기 위해 시도하는 알고리즘으로 이해했습니다. 그런데 위 내용과 연관지였을 때 이해가 잘 안되는 부분이 있네요. 예를 들어 layer가 4개일 때 델타(4)는 최종 예측값에서 실제값을 뺴서 계산하고, 델타(4)에 영향을 미치는게 이전 a(3)값과 세타(3)라는 것은 추측해볼 수 있었습니다. 그런데 왜 식이 세타(3)T 곱하기 델타(4)의 식으로 계산을 하나요? a(4)를 구할 때, a(3)X세타(3) 그리고 sigmoid를 씌워서 계산하는데, 반대라고 생각한다면 세타(4)/델타(3)가 되지 않을까요? 왜 저런 식으 계산이 되는건가요?
    #일반적으로 ax=b 일 때, a=b/x로 계산해서 이런 생각을 하게 되었습니다.
    2. 그리고 델타(Δ)가 어떤 의미인가요? 이전에 포스팅해주신 J의 미분값,gradient discent이라고 생각하면 될까요?

    이번에도 질문이 많네요 :-(

    2016.09.26 09:51 [ EDIT/ DEL : REPLY ]
    • 네~안녕하세요~ 아래 Back Propagation님이 BP님이신가요? 방갑습니다~^^

      그럼 먼저 Neural Network에서 Forward prop과 Back prop를 이야기 해볼께요.

      Forward prop는 입력값 x 로 부터 예측하고자 하는 결과값 y를 찾아가는 방법으로 왼쪽에서 오른쪽으로 진행이 되니 우리가 인지하기 어렵지 않습니다. 이렇게 연산하면서 진행하는 목적은 예측결과를 얻기 위함이지요.

      반대로 Back prop는 예측된 결과로 부터 error를 도출하고 이 error가 이전의 단계에서 어떻게 발생이 되는지를 역추적하는 것이라 오른쪽에서 왼쪽으로 진행이 됩니다. 방향이 역방향이라 어색하고 좀 햇갈리는데요. 이렇게 하는 목적은 최종 결과에 대한 문제(error)는 이전단계에서 얼마나 영향을 미쳤는 지를 찾기 위한 것입니다.

      그래서 theta라는 것은 입력값으로 부터 예측하고자 하는 결과값을 잘 찾기 위한 변수이고, Delta라는 것은 최종 결과에서 발생된 문제(error)가 이전에도 얼마나 문제가 되었나를 찾기 위한 변수가 되는거지요. 두번째 질문 주신 내용에 답변이 되었을까요? ㅎ

      그럼 첫번째 질문 주신 내용에 관련해서, 마지막 layer를 보면은요.
      forward prop의 경우에는 앞유닛의 결과값인 a3과 라인으로 연결되어있는 Theta3이 연산되어 a(4)가 되는 것이고,
      back prop의 경우에는 최종결과의 error 값인 Delta(4)와 라인으로 연결되어 있는 Theta(3)와 연산이 되어 앞유닛의 error값 Delta(3)가 결과가 나오는 것입니다.

      방향이 오른쪽에서 왼쪽으로 연산이 되어 가는것이라 어색하면 전체그림을 뒤집어 보면 좀 익숙해 보일수도 있습니다.^^

      그리고 여기에서 나오는 연산은 설명하기 위해 쉽게 풀어낸 것이고 사실상은 엄청나게 복잡한 편미분의 공식들이 숨어있는 걸로 알고있습니다. ㅠㅠ 미지에 세계인듯요.

      2016.09.26 22:08 신고 [ EDIT/ DEL ]
  10. Back Propagation


    델타(l)j는 l layer에 있는 j 번째 unit에 대한 cost error입니다. 이 델타(i)j를 구하기 위해서는 cost(i) 함수를 z(l)j 로 편미분하여 구하게 됩니다. cost(i) 함수는 위에서 치환한 log 로 구성되어 있는 함수이고 세타로 편미분을 하는 것에서 z 값으로 편미분을 하는 것으로 변경되었습니다. 이로 인해서 cost(i)의 함수내에 있는 h(x)함수가 조금 바뀌게 됩니다.

    이 부분에 대한 질문이 있습니다! 신경망분석도 logistic을 쓰는데, 이 내용이 실려있는 "22. 뇌신경망을 이용한 머신러닝 (Neural Networks) Back Propagation" 에서는 COST 값을 구하는 식에서 H(x) 함수 뒷부분이 바뀌어있습니다. 설명해 주신데로 z값으로 미분을 한다는 점이 차이인데, 왜 z 값으로 미분을 하는지, 어떤 과정을 거쳐서 h(x)가 바뀌는지 궁금합니다!

    2016.09.23 15:21 [ EDIT/ DEL : REPLY ]
    • 네~ 애매한 부분이기는 하네요^^
      결론 먼저 이야기하면 뒤에 나오는 back prop 개념을 설명하기 위해서 cost함수를 심플하게 바꾼것입니다. 즉, NN이 유닛도 1개이고 아웃풋도 1개인 식으로 만들고 람다도 0으로 놓은것일 뿐입니다.

      z 라는 것도 설명하기 위해서 만들어 놓은거라고 보시면 되는데, z 라는 값은 쉽게 비유적으로 이야기하면 theta * x 입니다. 근데 실제 x feature 는 아니고 바로 앞 유닛에서 발생되는 결과 값인 것이 logistic과 조금 다른데 비슷한 개념이라는 것입니다.

      그러니까, 어떤 하나의 유닛 입장에서 보면 바로 전단계의 결과 값에 theta가 곱해진 자신의 입력값이 바로 변수 z 의 의미에요. (아 완전히 자신의 입력값은 아니네요. sigmoid 를 적용하기 이전 단계의 중간값이니까요)

      그리고 z 를 다시 보면 전단계에서 나오는 결과값은 어떤 숫자(real number)가 될 것이기에 쉽게 생각하면 theta라고 봐도 되는 것이지요. 물론 곱하기 된 theta입니다.

      그런식으로 보면, 마찬가지로 이전에 logistic에서 theta로 편미분하는 것과 크게 다르지 않는 것처럼 설명이 되는것이지요.

      뭐...여기까지는 질문을 주셨으니까 말씀드린 내용이고 실제적으로는 개념만 이해하시면 되는 내용입니다. 수억?개의 많은 layer와 unit들로 구성되어져 있는 NN에서 하나의 유닛을 파고들게 되는 일은 아마도 없을 겁니다. 다 알수도 없고요.^^

      좋은 lib들을 이용하시면 직접 공식으로 구현하지 않아도 알아서 자동으로 계산해줍니다. 그져 우리는 개념만 이해하고 적절한 함수를 호출하기만 하면되니 좋은 세상인거 같네요~ㅎㅎ

      2016.09.23 21:09 신고 [ EDIT/ DEL ]