# optimization

155개의 포스트
post-thumbnail

Pytorch 공식 문서와 함께하는 Pytorch 튜토리얼_6(optimization)

모델 변수 최적화하기 모델과 데이터를 앞서 준배해놨으니, 데이터에 매개변수를 최적화하여 모델을 학습하고, 검증하고 테스트할 차례입니다. 모델을 학습하는 과정은 반복적인 과정을 거칩니다 각 반복 단계에서 모델은 출력을 추측하고 추측과 정답사이의 오류(손실)을 계산하고 매개변수에 대한 오류의 도 함수를 수집한뒤 경사하강법을 사용하여 이 파라미터들을 최적화 함 -이 과정에 대한 설명은 역전파 미적분링크를 보시면 이해가 빠릅니다. 개인적으로 이 링크에 있는 심층학습 부분을 들었더니 이해가 편하게 됐습니다. 기본코드 -이전 Dataset과 DataLoader, 신경망 모델 구성하기의 코드입니다. import 부분은 파이토치 라이브러리를 위한 torch, 뉴럴 네트워크를 위한 nn, 데이터 다운로드와 같은 기타 등등의 기능을 위한 DataLoader,datas

2023년 9월 17일
·
0개의 댓글
·

[Spring Boot] 커스텀 ObjectMapper 활용하기 + Swagger

Motivation 🙋‍♂️ 그동안 API Request, Response body 컨벤션을 snake_case로 해왔다. 그럴때마다 아래와 같이 @JsonNaming 아노테이션을 붙였다. 클래스가 점점 많아지는데 매번 아노테이션을 달지 않고 하는 방법이 있는지 궁금했다. Solution 🙌 먼저 Jackson에서 제공하는 ObjectMapper에 주목했다. Jackson은 자바용 Json 라이브러리로 data-processing 툴이다. Jackson의 ObjectMapper는 Json을 Object 데이터로 역직렬화하고 Object를 Json 데이터로 직렬화하는 작업을 해준다. 그런데 ObjectMapper를 커스터마이징하면 Parsing 과정에 조건이나 기능을 추가할 수 있다. Configuration ⚙️ 위 예시에 대한 ObjectMapper 커스터마이징을 @Configuration 아노테이션으로 했다. 신경써야 할 부분은 snake_case와 (

2023년 9월 1일
·
0개의 댓글
·

[Spring Boot] 인터페이스와 제네릭을 활용한 게시판 추상화

Motivation 🙋‍♂️ 게시판 Board -> Post > Reply 순으로 controller와 service를 개발하던 중 ReplyService의 create 메소드에서 구조적 개선이 필요하다고 깨닳았다. Board, Post, Reply의 controller와 service 클래스는 모두 CRUD (Create, Read, Update, Delete) 기능을 가지는데 클래스마다 구현하는 것이 비효율적이다. 위에 클래스 메소드를 보면 겹치는 메소드가 눈에 띄게 많이 보인다. 또한 Board Controller와 Service만 Dto로 반환하고 있어 Post와 Reply도 똑같이 수정해야 한다. 중복된 메소드와 Entity를 Dto로 바꾸는 작업을 인터페이스로 정리하면 더 깔끔하고 가독성 높은

2023년 8월 30일
·
0개의 댓글
·
post-thumbnail

ISTA와 Learning ISTA

이걸 왜 갑자기 지금까지 작성한 글은 sparsity에 대한 내용을 다뤘다. (2개밖에 안되긴 함ㅋㅋ) 근데 오늘 적을 내용은 Optimization 방법론에 관한 내용이다. 근데 이걸 왜 갑자기 소개하는걸까 이전 포스트들을 보면 Sparsity를 고려해주기 위해 L1 Regularization을 사용하는 것을 알 수 있다. L1 regularization의 변수 선택 성질로 인해 Sparsity 비스무리한 효과를 보일 수 있다. L1 Regularization이 들어간 Optimization problem을 세웠다고 생각해보자. $$ \min\alpha ||y-D\alpha||^22 + \lambda ||\alpha||_1 $$ 이런 식이 있다. 여기에서 y는 측정된 Noisy data이고 D는 임의의 Dictionary이다. (Basis) 이러한 최적화 문제를 품으로써 Optimal sparse code $\alpha$를 구할 수 있다는 것이다. 근데 이런 Opti

2023년 8월 25일
·
0개의 댓글
·

FLUTTER 앱 성능 최적화

vs code 기준 터미널 위쪽에 문제가 있는 것을 확인하셨나요? 문제 번호가 999+로 표시되는 경우를 보신적이 있나요? 저도 보고 싶지 않았습니다. 처음에 회사에 입사해서 Flutter을 접했을 때는 문제 번호가 크게 신경쓰이지 않았습니다. 기존에 운영 중이던 서비스의 로직을 이해하느라 바빴으니까요. 하지만 지금은 9개월이 지나 서비스를 안정화시키고 추가 기능을 개발하며 무수한 이슈에 부딪히다 보니, 이제는 서비스의 안정성을 확보한 상태입니다. 저는 본능적으로 느꼈습니다 추가 기능 개발을 하면 정신이 없을꺼라는걸. 그래서 이제 시작해야 할 단계는 성능 최적화입니다. 자, 그럼 본론으로 들어가보겠습니다. 앱의 성능을 최적화하기 위해서 다음 10가지 주요 부분에 대해 신경을 써야 합니다.

2023년 8월 3일
·
2개의 댓글
·
post-thumbnail

웹 사이트 성능 메트릭

최근 초기 렌더링 개선 작업을 위한 Next.js SSG(Static Site Generation) 도입 과정에서 웹 사이트 성능 메트릭에 대한 개념이 아직 부족하다고 느껴 주요 개념들을 공부하고 이곳에 정리하고자 한다. 주요 Web 지표(metrics) 항목 1. TTFB (Time To First Byte) > 페이지를 요청했을 때 서버에서 데이터의 첫 번째 바이트가 도착하는 시점을 나타낸다. TTFB는 주로 서버 성능과 직결된다. 최적화 방법 서버 애플리케이션 로직 최적화 DB 쿼리 최적화 또는 더 빠른 DB로 마이그레이션 더 많은 RAM 또는 CPU를 갖도록 서버 하드웨어 업그레이드 2. FCP (First Contentful Paint) > 페이지가 로

2023년 7월 26일
·
0개의 댓글
·
post-thumbnail

브라우저 렌더링 과정 & 최적화

최근 모달 공통 모듈 작업을 하며 브라우저 렌더링 성능에 관한 이슈를 마주쳐서 다시 한번 브라우저 렌더링 과정을 공부하고 상기하는 목적으로 글을 정리해보려고 한다. 팀원들이 사용할 공통 모달 모듈을 만들어보자. 💻 브라우저 브라우저 렌더링 과정을 알아보기전에 브라우저가 무엇인지 먼저 알아보자. 우선 브라우저는 우리가 흔히 인터넷에 접속할

2023년 7월 23일
·
1개의 댓글
·
post-thumbnail

이미지 최적화 with webpack plugin

지난 글에서, 이미지 포맷을 수동적으로 변경시켜 프로젝트에 적용시키는 1번 방법을 적용시켜 보았지만 일일히 이미지들을 수동적으로 프로세싱하는 것이 썩 마음에 들지는 않았다. 그래서, 4번 방법 - 이미지를 import해 사용할 때, 웹팩 플러그인을 이용해 이미지를 최적화하는 방법을 시도해보았다. 위에서 언급했듯, 리액트 컴포넌트에 import된 이미지가 Webpack를 거치며 빌드될 때, 이미지들을 최적화시키는 플러그인을 적용시켜 원하는 설정대로 압축되는 등의 프로세싱을 적용시킬 수 있다. 웹팩 설정을 변경시켜야 하기에, 먼저 CRA로 만들어

2023년 7월 19일
·
0개의 댓글
·
post-thumbnail

프론트엔드 개발자의 성능 최적화 <5편>

환경 CRA로 작업하는 경우 개발은 development 환경에서 수행하는데 여기에서 performance는 Build하며 압축 등의 최적화 작업이 들어가지 않아 production으로 성능을 측정할 필요가 있어요. 손쉽게 production모드의 성능측정을 위해 npm serve를 사용할 수 있어요. 라이브러리 설치 후 package.json > scripts에 아래와 같은 명령어를 추가해요. node ./node_modules/serve/bin/serve.js -u -s build: 이 명령어는 빌드된 소스 코드를 로컬 웹 서버에서 실행시키는 역할을 합니다. node 명령어는 Node.js 런타임을 실행시키는데, 여기에 ./node_modules/serve/bin/serve.js는 serve 패키지의 실행 파일 경로를 의미합니다.

2023년 5월 12일
·
0개의 댓글
·
post-thumbnail

프론트엔드 개발자의 성능 최적화 <4편>

> 코드분할, 지연로딩 performance > network > 파일의 크기가 크고 다운로드의 시간이 긴 경우 해당 파일이 어떤 코드로 이루어져 있는지 알면 좋은데요. Webpack Bundle Analyzer라는 라이브러리를 통하면 시각화하여 볼 수 있어요. Webpack을 직접 세팅했다면 위 방법을 사용할 수 있지만 CreateReactApp을 이용하여 어플리케이션을 세팅하셨다면 npm run eject와 같은 명령을 통해 복잡하게 수정을해야 하는데요. cra-bundle-analyzer라이브러리를 이용하면 CreateReactApp을 이용한 경우에도 쉽게 webpack-bundle-analyzer의 기능을 사용할 수 있답니다. 위 라이브러리를 통해 코드분할이 필요한 파일에 구성을 파악하고 페이지별로 코드를 분리해요. 즉 하나의 번들파일을 여러 개로 분할해요

2023년 5월 11일
·
0개의 댓글
·
post-thumbnail

프론트엔드 개발자의 성능 최적화 <3편>

Network 타임라인 막대를 보는 법에 대해 알아보겠습니다. 왼쪽 회색 선: 연결 시간 막대 옅은 부분: 요청 > 응답 기다리는 시간 막대 짙은 부분: 콘텐츠 다운로드 시간 오른쪽 회색 선: 요청에 대한 메인 스레드 작업 시간 > Frames, Timings, Main Frames: 화면에 변화가 있을 때마다의 스크린 샷 Timings: User Timing API를 통해 기록된 정보 (이미지는 리액트의 컴포넌트 렌더링 시간을 측정한 것) <p style

2023년 5월 10일
·
0개의 댓글
·

Boost your Knowledge: Adaptive Boost

시작하며, 그동안 수강과목의 과제와 중간고사를 준비하고 치르느라고 정신이 없었네요. 사실은 좀 더 시간관리를 잘했더라면 블로그에 글도 남길 수 있었을 것 같은데 말이죠. 앞으로 커피를 있는 대로 때려 부어 waking hours에 hype 상태를 유지해야겠어요. 아무튼, 오늘은 머신러닝과 컴퓨터 비전 수업에 종종 등장하는 Adaptive Boost의 theory에 관해서 공부하던 중 새롭게 익힌 인사이트와 이론적 근사함을 글로 슬쩍 남겨보려고 합니다. Adaptive Boost의 problem formulation, algorithm 그리고 theoretical background 순으로 살펴봅니다. 1. Problem Formulation Adaptive Boost는 ensemble 기반으로 binary classification 문제를 다룹니다. Training set $S$은 n개의 data points로 구성되어 있습니다. $S := [(x1, y1),(x_2

2023년 4월 29일
·
0개의 댓글
·
post-thumbnail

프론트엔드 개발자의 성능 최적화 <2편>

> 이미지 사이즈 최적화 LightHouse의 분석결과 Properly size images 항목이 있다면 이미지의 적절한 사이즈 사용을 통해 최적화를 시도할 수 있어요. 최적화를 통해 Properly size images 우측에 표시된 1.52s만큼 로딩을 단축할 수 있다는 의미에요. 자 그럼 개발자도구 > Elements에서 img 태그의 src 부분에 커서를 올리시면 조그만 창이 보이는데요. 아래 이미지는 방금 얘기한 조그만 창의 일부에요. Intrins

2023년 4월 22일
·
0개의 댓글
·
post-thumbnail

Web Optimization 101

Q. (Still in the process of being updated!) Why does inline styling trigger reflow? import vs. require update tree shaking part (4 strategies..) What is the essence of 'optimization' in web development? ---> Loading the screen as fast as possible within the given conditions. Obvious benefits: Decreasing bounce rate Increasing conversion Increasing traffic + profit Improving UX Listed below are some common optimization strategies to take note. Basic Optimizatio

2023년 3월 30일
·
0개의 댓글
·
post-thumbnail

Lighthouse

🔧변경내용🔨 > | 제목 | 날짜| 내용| | :--: | :--: | :--: | | 발행일 | 23.03.30 | | 📌들어가기에 앞서 > 해당 포스트는 Lighthouse를 학습한 내용을 정리한 것입니다. 🌈 Lighthouse 사이트를 검사하여 성능 측정을 할 수 있는 도구인 Lighthouse에 대해 알아보자. Lighthouse는 다양한 지표를 이용하여 웹페이지의 성능 검사를 해줄 뿐만 아니라 그에 대한 개선책도 제공해준다. Lighthouse는 구글에서 개발한 오픈소스로서 웹 페이지의 품질을 개선할 수 있는 자동화 툴이다. 성능, 접근성, PWA, SEO

2023년 3월 30일
·
0개의 댓글
·
post-thumbnail

Optimization

🔧변경내용🔨 > | 제목 | 날짜| 내용| | :--: | :--: | :--: | | 발행일 | 23.03.30 | | 📌들어가기에 앞서 > 해당 포스트는 Optimization를 학습한 내용을 정리한 것입니다. 🌈 최적화(Optimization)의 개념 최적화란 무엇일까? 한국정보통신기술협회의 정보통신 용어사전에서는 다음과 같이 정의한다. > ### 최적화, 最適化, optimization 주어진 상황에서 원하는 가장 알맞은 결과를 얻을 수 있도록 처리하는 과정. 최적화는 허용된 자원의 한계 내에서 주어진 요구사항을 만족시키면서

2023년 3월 30일
·
0개의 댓글
·

[HTML] 📈최적화 하는 방법

▷ 브라우저 이미지 최적화 🌃 이미지 스프라이트 여러 개의 이미지를 모아 하나의 스프라이트 이미지로 만들고 CSS의 background-position 속성을 사용하여 이미지의 일정 부분만 클래스 등으로 구분하여 사용하는 방법이다. 🌃 아이콘 폰트 사용 Font Awesome Font Awesome에서 키트를 html의 head에 넣어주거나, React에서는 직접 설치를 해서 사용할 수 있다. 불러온 아이콘은 클래스명을 직접 붙이거

2023년 3월 30일
·
0개의 댓글
·
post-thumbnail

[최적화] 캐시 관리

✏️ 캐시 관리 캐시 사용하기 캐시(Cache)는 다운로드 받은 데이터나 값을 미리 복사해 놓는 임시 장소를 뜻하며, 데이터에 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 서버에서 logo.jpg 라는 이미지를 받아오는 요청을 보낸다고 하자. 첫번째 요청에서는 해당 이미지를 받아온 적이 없기 때문에 이미지를 통째로 받아오게 된다. 이때 HTTP 헤더의 용량이 0.1M, 이미지 용량이 1.0M라면 응답의 총 용량은 1.1M 이 된다. 문제는 두번째 요청부터이다. 완전히 똑같은 파일을 또 다시 받아오는 일이 발생하기 때문이다. 똑같은 데이터를 굳이 다시 받아오기보다 전에 받아두었던 파일을 재사용하여 리소스 낭비를 막을 수 있다. 첫번째 요청 ![](https://velog.vel

2023년 3월 30일
·
0개의 댓글
·
post-thumbnail

[최적화] 최적화(Optimization) 기법

✏️ 최적화(Optimization) : 주어진 조건으로 최대 효율을 낼 수 있도록 하는 것 컴퓨터 공학에서 최적화는 가능한 적은 리소스를 소모하면서 가능한 빠르게 원하는 결과를 얻을 수 있도록 하는 것을 의미한다. 최적화의 필요성 및 효과 1. 이탈률 감소 웹 사이트의 성능 최적화를 통해 페이지 로딩 속도를 줄이면, 사용자의 이탈률을 효과적으로 줄일 수 있다. 2. 전환율 증가 이탈률이 줄어들면, 전환율(웹사이트를 방문한 사용자 중 회원가입, 상품 구매, 게시글 조회, 다운로드 등의 행위를 한 방문자의 비율)이 높아질 확률도 커진다. 3. 수익 증대 빠른 웹사이트 로딩 속도는 수익 증대까지 이어질 수 있다. 이탈률 감소, 전환율 증가는 트래픽 증대 및 회원 수 증가로 이어지고, 이는 곧 수익 증대를 의미한다. 4. 사용자 경험(UX) 향상 최적화는 효과적인 UX 개선 수

2023년 3월 30일
·
0개의 댓글
·
post-thumbnail

[부스트캠프 AI Tech 5기] Optimization

최적화 Generalization Training error가 0이라는 것이 학습의 종료를 의미하지는 않음 일반화 성능이 좋아야 함 Validation 학습 데이터와 검증 데이터를 어떻게 나누는게 좋을까? cross validation 학습 데이터와 검증 데이터를 k개로 나누어서, k-1 개로 학습 후 남은 1개로 검증하는 방법 일반적으로 cross validation을 통해 최적의 하이퍼 파라미터셋을 찾고, 모든 데이터를 사용해 모델을 학습 엄밀하게, test data는 학습에 어떤식으로든 사용하면 안됨 bias and variance 편향과 분산 노이즈가 껴있다고 가정할 때, cost를 minimize하는 것은 bias, variance, noise 총 3가지로 나눌 수 있음 bootstrapping random sampling with replacement 학

2023년 3월 20일
·
0개의 댓글
·