오늘은 Logistic regression (로지스틱 회귀)를 정리해 보려고 합니다. 제가 정리하는 모든 머신러닝 딥러닝 내용은 sung kim님의 유튜브 모두의딥러닝 시즌1 강의와 텐서플로로 배우는 딥러닝 책을 기반으로 합니다. :) https://www.youtube.com/watch?v=BS6O0zOGX4E&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm Linear regression이 선형적인 데이터를 예측하는데 사용되었다면, Logistic regression은 이진분류를 하는데 사용 됩니다. 메일에서 스팸메일인지 아닌지 구분하는것 처럼 두 가지 케이스로 구분해야 하는 경우에 사용됩니다. 시험 성적의 pass/fail 도 좋은 예가 될 수 있죠 ㅎㅎ 시험성적을 예로 그래..
Git을 사용할때 우리를 가장 힘들게 하는 그 것! 우리가 Git 사용하기 너무 어렵다고 하는 바로 그 이유! 오늘은 머지를 했을 때 충돌 해결 방법에 대해 알아보려고 합니다. 우선 저는 Sourcetree 라는 GUI툴 대신 계속 터미널에서 명령어로 Git을 사용하는 법을 다루고 있는데요, 앞서 포스팅 했던 내용들이 원리와 본질은 같고, 단지 각종 명령을 명령어로 입력해서 실행하느냐, 버튼을 눌러서 실행하느냐의 차이이기 때문에 Sourcetree를 사용하고 계셔도 글을 읽어보시면 많은 도움이 될 거라고 생각합니다! (아 참고로 나중에 Sourcetree 내용도 다룰 예정입니다.) 우선 충돌을 해결하는 방법을 알기 이전에 충돌이 왜 나는지부터 알아야 겠죠? 이유는 단순 합니다! 두 브랜치에 A라는 파일이..
오늘은 stash에 대해 알아 볼까 합니다! 우선 stash란 영단어가 생소한데, 뜻 먼저 알아 볼까요? 백과사전을 찾아보니 stash란 '(안전한곳에) 넣어두다.' 라는 의미를 갖고 있네요 ㅎㅎ 깃 에서 이름을 명명한대로 stash의 의미와 동일한 기능을 하는데요! 그럼 언제 쓰느냐!? 어느 특정 브랜치에서 작업을 하다가 그 작업이 다 끝나지 않은 상태에서 다른 브랜치에서의 작업을 위해 체크아웃 해야 할 때 사용합니다. , 좀 더 쉽게 풀어 쓰면, 아직 끝나지 않은 작업을 커밋한 후 다른 브랜치로 체크아웃하기 애매하기에 잠깐 작업 내용을 숨겨둔 상태로 다른 브랜치로 체크아웃 할때 사용 합니다! stash 역시 사용방법은 간단하데요. 어느 한 브랜치에서 작업하다가, 다른 브랜치로 체크아웃 할 때, git..
오늘 소개 드릴 Git의 기능은 Merge 입니다. 영어의 의미에서 알 수 있듯이, 브랜치를 서로 병합하는 작업을 머지라고 하는데요. 협업을 할 때, 가장 많이 문제가 발생하는게 바로 머지할때입니다. 서로 같은 부분을 수정한 상태로 머지를 하게되면 충돌이 일어나게 되는데, 이러한 충돌 해결방법은 차후에 다루기로 하고, 우선 머지하는 방법을 배워봅시다! 머지 하는 방법은 정말정말 너무 간단합니다. 만약 master브랜치에 feature1이라는 브랜치를 병합하고 싶으면, master 브랜치로 체크아웃 한 상태에서 (마스터 브랜치에 속한 상태) git merge feature1 이라고 명령어를 입력하고 머지 커밋을 생성하면 끝입니다. 머지가 잘 되었는지 그래프로 확인해보고 싶으시면, 앞서 배운 명령어 git ..
오늘은 git 브랜치에 대해 배워볼까 합니다. branch를 만든다는 것은 작업을 분기하겠다는 의미와 같습니다. 즉, 오늘 브랜치에 대해 배우면 앞으로는 작업을 분기시켜 관리 할 수 있는 능력을 얻게 되는 것이죠 :) 그럼 브랜치는 어떤 상황에서 만들게 될까요? 여러가지 경우가 있겠지만, 크게 두가지 경우 입니다. 원래 소스코드는 변경하지 않으면서 기존 소스코드에 다른 기능을 추가 하고자 할 때! 메인 작업과 테스트작업을 분기해서 진행하고자 할 때! 그럼 시작해 봅시다! git branch 라고 입력을 해보면 현재 branch 리스트가 나옵니다. 저희는 아직 새로운 브랜치를 생성한적이 없기 때문에, 아래와 같이 나올껍니다. master옆 에있는 *의 의미는 현재 어느 브랜치에 들어와 있는지를 나타냅니다...
Git 정리(3)으로 넘어가기 전에, Git의 간단한 원리를 정리해보고 넘어가고자 합니다. 생활코딩의 깃 강의를 들어보면 이고잉님이 서두에 이런 말씀을 하십니다. 1. 원리를 알고 공부 하면 기억이 오래가고 응용이 가능하다. 2. 원리를 공부하면서 다양한 영감을 받을 수 있다. 저에게 있어서 너무 공감가는 얘기였습니다. 어떤 분야이던지 기술만 배워서 사용하고 적용할 수 있지만, 어느 수준 이상에 도달 하기 위해서는 해당 기술에대한 원리 이해가 필수적이라고 생각하고 있었거든요. 옛말에 "기초가 중요하다.", "기초가 튼튼해야한다.", "초석을 잘 다져야된다." 등의 말이 동일한 맥락에서 나온 말이라고 생각합니다. 그래서 Git이 어떤식으로 동작하는 건지 간단한 원리를 짚고 넘어가려 합니다! 프로젝트 디렉토..
애플 ARKit이 처음 나왔을 때 흥미와 호기심에 간단한 ar앱들을 만들어 봤었는데, 어느새 ARkit3이 나왔네요. 이번에 학교 졸업작품으로 ar기능이 들어간 앱을 만들 예정이라 블로그에 정리해 가며 공부해보려고 합니다. 먼저 api에 대한 공부가 선행 되어야 할 것 같아서, api에 대한 정리를 먼저 해보려고 합니다. 하단의 내용은 애플 개발자문서와, 여러 해외 블로거들의 정리내용을 참조했습니다. :) ARKit - 한마디로 AR app을 만들기 위한 애플이 개발한 프레임워크 ARSession - ar 경험을 만들기 위해 필수적인 데이터와 로직을 처리하기 위한 세션, 카메라와 모션데이터 주변 환경을 트래킹하기위한 일련의 계산과정등을 처리 하는 클래스, ARkit으로 만들어지는 AR 경험은 ARSess..
오늘 공부 해 볼 내용은, 앞서 배운 선형회귀의 연장선상에 있는? 내용입니다. 차이점이라고 하면, 앞서 배운 선형회귀는 변수 x가 한 개였다면, 지금은 여러개의 변수를 갖는 선형회귀 입니다. Hypothesis로 보자면, H(x) = wx + b 에서 H(x) = w1x1 + w2x2 + w33.. + b가 되는 것이죠. 방법은 간단합니다. 데이터가 늘어난 만큼 weight과 x의 갯수를 늘려주면 되니까요. 한번 코드로 살펴 볼까요? (참고로 지금 살펴 볼 코드는 나쁜 방법입니다.) import tensorflow.compat.v1 as tf tf.disable_v2_behavior() # 나쁜 방법 x1_data = [73., 93., 89., 96., 73.] x2_data = [80., 88., 9..
오늘은 git add와 git commit에 대해 알아볼까 합니다 :) 앞서 저희는 git init을 함으로써 이 프로젝트에 대해 버전관리를 시작하겠다고 컴퓨터에 알려줬었는데요. 이제 버전을 만들고 그 버전에 git을 add 하고 commit 함으로써 변경사항을 관리해 나가는 방법을 배울 겁니다. 여기서 버전이란, 보통은 의미있는 변화를 의미 합니다. (작업이 완결된 상태) 해당 버전이 자신이 만든것이라고 다른사람에게 알려주기 위해 git의 환경설정을 할 수 있는데, 이 부분은 선택사항 입니다. 하단의 명렁어 끝에 자신의 이름과 이메일(빨간색 글자)을 입력하면 내가 작성한 버전정보에는 자신의 이름과 이메일이 포함되게 됩니다. 따라서, 다른사람이 봤을때 누가 작업했는지 알 수 있습니다. git config..
오늘은! 머신러닝 모델에서 가장 기본적이고 기초적이라 할 수 있는 선형회귀 모델을 공부해보려 합니다 별로 어렵지 않는내용이면서 재밌게 공부할 수 있어요! 먼저 선형회귀에대해 공부하기 전에, 머신러닝 모델 개발은 다음과 같은 프로세스를 거치게 됩니다. 학습하고자 하는 가설(Hypothesis)을 수학적 표현식으로 나타냅니다. 가설의 성능을 측정할 수 있는 손실함수(Cost Function 혹은 Loss Function)을 정의합니다. 손실함수를 최소화 할 수 있는 알고리즘을 설계합니다. 저는 머신러닝을 공부하기 전에, 도대체 어떻게 컴퓨터가 학습을 하는걸까? 라는 의문을 품고 있었습니다. 이에 대한 답은!! 비용함수(손실함수)를 최소화 하도록 만드는 것이였는데요. 말로만 들어서는 이해가 잘 안가실 수 있지..