본문 바로가기
Programming/Deep learning

multi-variable linaer regression

by OKOK 2018. 1. 16.

cost를 어떻게 계산할 것인지, 비용함수 로스를 어떻게 정의할 것인가에 대한 문제가 발생합니다. 오케이 가설 세우고, 비용함수 그리고 최적화하는 알고리즘을 봅니다. 오케이요.  더블유와 비에 대해서 코스트가 정해지기 떄문에, 오케이 하이파시스 실제값 와이 이것이 정답이 됩니다. 실제 값과 예측 한 값.  밥 그릇 모양으로 주어집니다. 여기서 코스트가 최적화가 되는 최적화가 되는 경사면을 따라서 내려가면 됩니다.  


코스트 최적화 하는 것입니다. 하나의 인풋 베리어블일 때, 오케이요. 다양한 인풋이 존재합니다. 그 전에는 하나의 인풋이었으나 지금은 여러개의 인풋을 넣는 것입니다. 파이널 점수를 예측할 수 있을까요. 이런 경우에는 변수가 3개가 있습니다. 이런 경우에는 어떻게 하면 될까요. 한 개가 있을 때 수식이 있고, 3개가 있을 때는 다음과 같습니다. 더블유 오케이. 더블유, 더블유, 오케이, 더블유 오케이요. 비용 함수는 어떻게 할까요. 예측한 값과 실제 값의 차이를 비교하는 것입니다. 구해서 제곱한 값을 더하면 이렇게 됩니다. 가설만, 여러개 있을 경우에는 넓게 벌려주면 됩니다만. 더 많은 경우에는 똑같이 진행하면 됩니다. 쭉 늘려주면 됩니다. 이렇게 하다 보니, 숫기을 일일이 길게 늘려주어야 하는가? 잘 처리하기 위해서 행렬을 사용하면 됩니다. 행렬의 곱셈 연산만 사용할 예정입니다. 이렇게 이렇게 하나씩 곱하면 됩니다. 이렇게 행렬의 곱을 할 수 있습니다. 인터넷 가서 한번 확인하면 됩니다. 가설을 사용할 수 있습니다. 앞 단에 두고, 우에이 3개를 둡니다. 매트릭스 곱하기. 가설 사용 행렬을 사용하여,  이렇게 하게 되면 원하는 값이 긴 값입니다. 


바이어스는 생략하고 보도록 합니다. 그러면 그대로 도입해서, 엑스원 엑스투, 쓰리를 값들을 행렬로 줍니다. 웨이트를 줍니다. 곱하면 이렇게 됩니다. 가설을 만들어 냅니다. 행렬을 곱하기 더블유 이렇게 합니다. 인스턴스라고 부릅니다. 인스턴스라는 단어를 사용합니다. 오케이요. 인스턴스의 수대로 줍니다. 그런데 놀라운 것은 더블유는 변함이 없습니다.  오늘 5분의 1들을 수 있습니다. 그리고 내일 내일 모레 수, 목 해서 모두 듣도록 하겠습니다. 그것이 굉장히 큰 장점이라고 할 수 있습니다. 멀티베리어블에 대해서 배웠습니다. 다음 시간에는 로지스틱 레그레션에 대해서 설명하도록 하겠습니다. 오케이요. 


실제 데이터를 적용할 수 있습니다. 오케이요. 많은 분들과 함께 개발중에 있습니다. 엑스가 3개 입니다.  3개로 생각하면 됩니다. 오케이요. placehold를 만들어야 합니다. 쉐이프가 중요합니다. 그러다 보니, 뒤에 있는 값이 3개가 됩니다. 쉡을 잡아줍니다. 오케이요. 이것은 대략적으로 앤개를 가질 것이다. 넌으로 표시를 해줍니다. 그렇게 작성하면 됩니다. 각 엘리멘트. 마찬가지로 이렇게 표현이 됩니다. 오케이. 이렇게 늘어나게 도비니다. 더블유는 그대로 됩니다. 하이파시스를 그래도 가져갑니다. 복잡하게 나열되어 있는 곳에 대해서 단순하게 나열되어 있습니다. 나머지 부분은 굉장히 간단하게 사용할 수 있습니다. 


데이터를 다루게 될텐데, 이것을 소스코드에 적어주기 힘드니 파일에 적어주고 이를 로딩하는 방법에 대해서 이야기하도록 하게습니다. 지난번 비디오에 이어서, 멀티 베리어블 엑스 와이데이터 직접 읽어오는 방법에 대해서 소개하도록 하겠습니다. 많은 분들과 함께 개발중에 있습니다. 데이터가 많아지기 때문에, 인덱스와 슬라이싱 이더레이팅이 있습니다 넘파이로 가면서 사용하는 방법에 대해서 나오게 됩니다. 오케이. 슬라이싱에 대해서 정리한것들 읽어온 데이터에 대해서 오케이요. 콜론은 전체에 대해서 엔행에 대해서 가져오겠습니다. 오케이요. 저게 저말이고, 저게 저말이라는 것을 명확히 알면 됩니다. 실제 출력한다음에 확인한 다음에 하도록 하겠습니다. 읽어왔을 때, 어떻게 하는 것인지 확인하도록 합니다. 웨이트와 행렬을 구성한다는 것을 알면 됩니다. 들어오는 값, 와이의 갯수에 맞게 구성한다는 것을 알면 됩니다요. 학습을 한다음에 학습을 하고 나는 점수는 이렇게 이렇게 이렇게 되는데 어떻게 되는지, 궁금합니다. 오케이.  


파일이 커서 메모리에 한번에 올리기 어렵습니다. 메모리가 부족하다고 나옵니다. 텐서플로우에서는 큐 러너라는 것을 만들어 두었습니다. 여러개의 파일에 쌓게 됩니다. 그런다음에 리더로 연결해서 읽은 다음에 데이터의 양식에 맞게 다시 큐에 쌓습니다. 한번에 전체가 필요한 것이 아니기 때문에 필요한 만큼만 학습을 시키고, 조금씩 꺼내쓰면 되는 것입니다. 전체 과정은 책임지고 전체 메모리를 올리지 않으므로, 좋습니다. 막상보면 굉장히 간단하게 사용가능합니다. 3가지로 나눕니다.