[ML] 다중 선형 회귀(Multivariable Linear regression)
·
AI/ML
앞서 배운 x가 1개인 선형 회귀를 단순 선형 회귀(Simple Linear Regression)이라고 합니다. 이번 챕터에서는 다수의 x로부터 y를 예측하는 다중 선형 회귀(Multivariable Linear Regression)에 대해서 이해합니다. 1. 데이터에 대한 이해(Data Definition) 2. 파이토치로 구현하기 우선 필요한 도구들을 임포트하고 랜덤 시드를 고정합니다. import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim torch.manual_seed(1) 이제 훈련 데이터를 선언해보겠습니다. # 훈련 데이터 x1_train = torch.FloatTensor([[7..
[ML] 자동 미분(Autograd)
·
AI/ML
경사 하강법 코드를 보면 requires_grad=True, backward() 등이 나옵니다. 이는 파이토치에서 제공하고 있는 자동 미분(Autograd) 기능을 수행하고 있는 것입니다. 파이토치의 학습 과정을 보다 더 잘 이해하기 위해서 자동 미분에 대해서 이해해봅시다. 1. 자동 미분(Autograd) 실습하기 자동 미분에 대해서 실습을 통해 이해해봅시다. 임의로 라는 식을 세워보고, w에 대해 미분해보겠습니다. import torch 값이 2인 임의의 스칼라 텐서 w를 선언합니다. 이때 required_grad를 True로 설정합니다. 이는 이 텐서에 대한 기울기를 저장하겠다는 의미입니다. 뒤에서 보겠지만, 이렇게 하면 w.grad에 w에 대한 미분값이 저장됩니다. w = torch.tensor(..
[ML] 선형회귀(Linear Regression)
·
AI/ML
1. 데이터에 대한 이해(Data Definition) 이번 챕터에서 선형 회귀를 위해 사용할 예제는 공부한 시간과 점수에 대한 상관관계입니다. 1. 훈련 데이터셋과 테스트 데이터셋 어떤 학생이 1시간 공부를 했더니 2점, 다른 학생이 2시간 공부를 했더니 4점, 또 다른 학생이 3시간을 공부했더니 6점을 맞았습니다. 그렇다면, 내가 4시간을 공부한다면 몇 점을 맞을 수 있을까요? 이 질문에 대답하기 위해서 1시간, 2시간, 3시간을 공부했을 때 각각 2점, 4점, 6점이 나왔다는 앞서 나온 정보를 이용해야 합니다. 이때 예측을 위해 사용하는 데이터를 훈련 데이터셋(training dataset)이라고 합니다. 학습이 끝난 후, 이 모델이 얼마나 잘 작동하는지 판별하는 데이터셋을 테스트 데이터셋(test..
[논문 정리] A Survey on the Edge Computing for the Internet of Things
·
카테고리 없음
요약 사물인터넷(IoT)은 이제 우리 일상생활에 깊숙이 파고들며 수백만 개의 센서와 장치들이 지속적으로 데이터를 생성하고 복잡한 네트워크를 통해 중요한 메시지를 교환하며, 기계 간 통신을 지원하고 중요한 스마트 월드 인프라의 모니터링 및 제어를 수행한다. 자원 혼잡의 확대를 완화하는 전략으로, 엣지 컴퓨팅이 IoT 및 지역화된 컴퓨팅 요구를 해결하기 위한 새로운 패러다임으로 등장했다. 클라우드 컴퓨팅과는 다르게, 엣지 컴퓨팅은 데이터 계산이나 저장을 사용자에게 가까운 네트워크 ‘엣지’로 이동시킬 것이다. 따라서 네트워크 전반에 분포된 여러 계산 노드들이 중앙집중식 데이터 센터에서의 계산 부담을 완화하고 메시지 교환의 지연 시간을 상당히 줄일 수 있다. 또한, 분산 구조는 네트워크 트래픽을 균형있게 하고 ..
JSX Key 속성
·
React
JSX Key 속성이란? 리액트에서 요소의 리스트를 나열할 때는 key를 넣어줘야한다. 키는 React가 변경, 추가 또는 제거된 항목을 식별하는 데 도움이 된다. 요소에 안정적인 ID를 부여하려면 배열 재부의 요소에 키를 제공해야한다. ex) 예를 들어 li태크에 키를 안 넣어준 경우에는 에러가 발생했었음. 리액트는 가상 돔을 이용해서 바뀐 부분만 실제 돔에 적용한다!! 가상 돔을 이용해서 원래 있던 가상 돔과 새로 바뀐 가상돔을 비교하여 바뀐 부분만 실제 돔에 적용해준다. 리액트에서는 리스트를 나열할 때 바뀐 부분만 찾을 때 어떻게 할까? 가상 돔에서 바뀐 부분을 찾을 때 사용하는 것이 key이다. key에는 유니크한 값을 넣어준다. (index는 비추천!) index도 0부터 시작해서 유니크한 값을..
인터페이스(Interface)
·
TS
함수 타입 - 호출 시그니처(Call Signature) ** this. -> 호출 될 때 정해지므로 doocong.getName('Hello!!')에서 this가 doocong이라는 객체 데이터로 정해진다. GetName이라는 인터페이스를 통해서 소괄호를 작성하여 내용을 쓰는 것을 호출 시그니처라고 한다. 호출 시그니처인 소괄호를 통해서 함수의 타입을 지정할 수 있는 것이다. 인터페이스를 사용해야 하는 이유? 인터페이스는 위와 같이 getName이나 User같이 이름을 지정할 수가 있다. 그래서 이 이름 가지고 재사용을 할 수가 있다는 것이고 인터페이스로 만든 함수와 동일한 구조의 함수를 만들고 싶을 때 그 타입을 똑같이 지정을 해 줄 수가 있는 것이다. 인덱스 가능 타입 - 인덱스 시그니처(Index..
TS 타입 종류
·
TS
// 타입 종류 // 문자 let str: string; let red: string = "Red"; let green: string = "Green"; let myColot: string = `My color is ${red}`; let yourColor: string = "Your color is" + green; // 숫자 let num: number; let integer: number = 6; let float: number = 3.14; let infinity: number = Infinity; let nan: number = NaN; // 불린 let isBoolean: boolean; let isDone: boolean = false; // Null / Undefined let nul: n..
TS 기초 개요
·
TS
TypeScript 범위 안에 JavaScript가 들어 있으며 TS는 JS에는 없는 인터페이스나 기타 타입을 지정하는 개념, 타입 단원, 제네릭 문법, 유틸리티 타입 등이 있다. TS -> JS 변환과정 확인 src폴더에 main.ts를 만든 후 코드를 작성하고 npm run dev로 서버를 열어준 후 생성된 dist폴더에서 index.~~~.js를 확인해보면 main.ts에서 작성한 코드가 js형식으로 변환되어 있음을 확인할 수 있다. 그래서 TypeScript가 실제로 브라우저에서 동작하기 위해서는 이런 반식을 통해서 코드를 만들긴 하지만 전부 다 JavaScript로 그 내용을 컴파일해서 동작을 시키는 것이다.
APIkey 코드에서 숨기기
·
JS
코드에 중요한 정보(apikey)가 그대로 남겨져 있는 것은 좋지 않다. 따라서 업로드하기전에 api키를 한번 더 숨겨서 이중으로 보호를 하려한다. 이때 쓰이는 개념이 환경변수이다. 💡 환경변수란? 환경변수는 이 프로젝트가 동작하는 환경 자체에다가 어떤 변수를 만들어서 데이터를 담아 놓고 그 환경에서만 데이터를 활용할 수 있는 방법이다. 설치 방법은 터미널에 "npm i -D dotenv" 입력. .env 파일을 추가한다. .env파일에 APIKEY = 어쩌고 추가 .gitignore 파일에 .env 추가
영화 세부 정보를 반환하는 내부 API 작성 (APIkey 숨기기)
·
JS
fetch함수를 통해서 서버로 내용을 전송할 때 body 부분에는 문자데이터를 담아줘야 한다. 객체데이터를 담아버리면 제대로 전송을 할 수 없으니 JSON.stringify method를 통해서 객체데이터 내용을 json문자로 만들어서 body에 담아 /api/movie라는 내부주소로 post method와 함께 전송할 수 있게 된다. 그럼 movie.js의 서버코드가 request라는 이름의 변수로 받아서 그 request에 우리가 담았던 body라는 속성을 json의 parse method로 분석하여 다시 객체 데이터로 결과를 내어줄 수 있다. 이때 title과 page만 담고 id는 따로 담아주지않았기에 삼항연산자에서 : 뒤의 코드를 실행하게 된다. 그래서 url이 fetch함수를 통해 전송이 되고..
doocong22
두콩이의 코딩일기