본문 바로가기

전체 글62

Pytorch Autograd (자동미분) 개념 Pytorch 에서는 일일이 사용자가 손으로 미분된 식을 구현해서 coding 하지 않아도 자동으로 미분해주는 autograd 라는 기능이 있다. Autograd 라는 pytorch 내의 패키지가 "computational graph" (이건 우리가 흔히 생각하는 그래프라는 막대나 선형그래프 같은 차트가 아니라 노드와 엣지로 구성된 일종의 마인드맵같이 생긴 그래프를 의미) 를 생성한다. 이 때 Tensor 는 node 가 되고 Tensor 간 계산을 수행하는 function 이 edge 가 된다.  아래 code 에서 autograd 를 적용시킨 간단한 사례를 보여주고 있는데 크게 단계별로 나눠보면 1. Data generation 2. Weight generation 이 때, weight 는 autog.. 2024. 8. 5.
Deep learning 의 구조: 복잡한 수식 없이 이해하기(2) 들어가며이전 포스팅에서는 복잡한 수식이 없이도 Deep learning 의 기본적인 프로세스를 알아보았다.Sin 함수값을 예측하기 위한 Process로 크게1. Forward propagation,2. loss 계산,3. backward propagation,4. weight 를 update를 하는 과정을 거쳤는데 이번 포스팅에서는 세부적으로 알아보고자 한다. 세부 Step 설명1. Forward propagationy_pred = a + b * x + c * x**2 + d * x**3 와 같은 수식으로 y 의 예측값인 y_pred를 계산한다. 2. Loss 계산실제 y 값과 predict 된 값간의 차이로 인해 발생하는 손실을 계산하기 위해 두 값의 차이를 구한 후 이를 제곱하여 합을 취한다. 이렇게.. 2024. 7. 28.
Deep learning 의 구조: 복잡한 수식 없이 이해하기 큰 틀에서의 Deep learning은 무엇일까Deep learning 을 배우다 보면 개인적으로 느끼는 불편함이 처음부터 자료형 (예를 들어, 파이토치라면 텐서란 무엇인지 등등) 에 대한 지식을 배우게 한다는 것이다. 내가 당장 알고 싶은것은 큰 틀에서 Deep learning 을 하는 이유는 무엇이고 어떠한 프로세스로 작동하는지 등등인데 이것부터 설명하는 책은 아직까지 내가 본 적이 없다. 그래서 이 포스팅에서는 자료형 이야기 보다는 Deep learning 의 목적, 어떤 절차로 Deep learning 이 진행되는지 등에 대해 이야기 해보려고 한다. (사실 이 문제는 비단 데이터 사이언스 뿐 만 아니라 프로그래밍 책을 보면 뭘 봐도 변수명 짓는 법, 자료형 부터 배우게 하더라.. 어느 유명한 강사.. 2024. 7. 23.
크롤링으로 구직사이트에서 구직 정보 수집하기 구직사이트인 잡코리아에 있는 정보 중 회사 명, 자격 요건, 우대사항 등의 정보를 수집하고 이것을 자동으로 dataframe 형태로 만들어 주는 작업을 하려고 했다. 개발자모드로 들어가서 커서를 움직여 가며 내가 원하는 정보가 담긴 HTML 구역에서 Xpath 도 뽑아내거나 아니면 그냥 Beautiful soup 으로 HTML 정보를 얻어냈지만 내가 원하는 정보는 나오지 않았다.마지막으로 시도 한 방법은 내가 원하는 정보가 담긴 class 의 이름을 직접 넣어서 찾는 것. 이렇게 했더니 드디어 나왔다.  맨 처음 시도 한 것. 이렇게 했을 때 에러는 안나지만 soup 변수에 내가 원하는 정보는 안들어가 있었음.from selenium import webdriverfrom selenium.webdriver.. 2024. 7. 16.
데이터 거버넌스: 표준화를 안하면 어떻게 될까 Cluade 에게 data governance 측면에서 한 연구소 내에서 개발한 2개의 software 에서 동일한 변수가 다른 데이터 타입으로 저장되어 있다면 무슨 문제가 생길지에 대해 물어봤다. 데이터 표준화 관점에서 문제가 있을 것이라고 막연히 생각했는데 claude 가 세분화 된 답변을 줬다. 참고로 내가 질문한 문장은 다음과 같다. Suppose there are two different softwares developed in the same lab, but some of variables are stored in a different data type. For example, variable A is stored as an int type but in other software, variab.. 2024. 7. 11.
python 에서 한 번에 여러 건의 값을 다른 값으로 replace 데이터를 다루다 보면 한 번에 한 건의 값만 replace를 하는 경우도 있지만 여러 건의 값을 일괄적으로 다른 값들로 replace 하고 싶은 경우도 있다. 보통 다른 웹사이트에서는 한꺼번에 replace 하는 경우에 대해서는 잘 다루고 있지 않아 내가 직접 서치하고 적용해 본 것을 공유한다. 예를 들어서, 2027, 2028, 2029, 2030 은 2021 으로 변경하고, 2023, 2024, 2025, 2026 은 2022 으로 변경 하고 싶다고 하자. 이럴 경우에는 아래와 같이 replace 안에서 dictionary 형식으로 원하는 변환 형태를 선택하고 마지막에 regex = True 로 설정하면 된다. # 연도 변환 # 2027, 2028, 2029, 2030년도: 2021년으로 변경 # 2.. 2024. 1. 28.
자기비난의 굴레에서 벗어나기 우울증 환자들이 부정적인 상황을 인지하는 공통적 패턴 마인드카페에서 데일리 프로그램으로 마음챙김을 하고 있는데 이번에는 우울증에 걸리는 사람들이 부정적인 일에 대해 바라보는 공통적인 패턴에 대해 알게 되었다. 주로 부정적인 일은 타인보다 자신때문에 일어났다고 믿으며, 이러한 믿음은 고정적이며, 특수한 상황보다는 전반적인 상황에서 그렇게 믿는다고 한다. 이를 나의 상황에도 한 번 대입 해 봤다. 나는 어떤 안좋은 일이 생기면 그건 대부분 나의 모자람으로 인해 일어났다고 믿는 편이며, 반대로는 좋은 일 (예를 들어 미국 박사학위 취득, 약간..? 좋은 직장 취직 등) 이 생기면 그건 나는 많이 부족한데 타인이 인심 써줘서 일어난 일이라 믿는다. 이는 내가 좋아하는 고전 소설인 다자이 오사무의 ‘인간실격’ 주.. 2023. 10. 6.
데이터 분석가로 취업한 이후의 현실과 난관 극복기 외부기관으로부터 데이터를 전달 받게 된 계기 내가 회사에 데이터 사이언티스트로 채용 되고 나서 알게 된 사실은, 우리 회사에는 사실 분석할 데이터가 없다는 것이었다. 의외로 실제로 이런 일이 종종 있다고 한다. 데이터 분석가를 채용하면서 면접 볼 때에는 그 회사에 데이터가 다 축적이 되어있다고 하고서는 나중에 입사해서 실제로 알고보면 데이터가 없는 말도 안되는 경우이다. 그나마 희망적이었던 것은 우리회사와 관련있는 다른 외부 기관으로부터 데이터를 전달받아 이를 분석하여 제품 품질관리에 사용할 수 있는 기회가 있었다. 나는 팀장님께 말씀드려 해당 프로젝트를 맡고 싶다고 자원했고, 팀장님께서는 승낙 해 주셨다. 하지만 난관의 시작은 그때 부터였다. 외부 기관의 직원들은 협업을 원하지 않았다. 그 프로젝트는 .. 2023. 9. 17.
반응형