no image
티스토리 블로그 주소창 리디렉션하기 (2차 도메인)
현재 블로그에서 2차 도메인을 사용하고 있다. 원래 도메인은 "lockcept-life.tistory.com" 이지만, 개인 도메인인 "blog.lockcept.kr" 을 사용하여 해당 주소로 들어오게끔 설정하였다. 그러나 가끔 블로그 내의 하이퍼링크를 클릭하는 등의 경우에는 원래 도메인을 기준으로 url이 설정되는 경우가 있다. 이런 경우 주소창에 표시되는 링크가 달라질 뿐 더러, 이 상태에서 포스트를 공유하면 원래 도메인을 기준으로 공유된다. "스킨 편집" 의 html 편집을 통해 이 문제를 방지할 수 있다. 해당 코드를 html 코드 사이에 삽입하면 해결할 수 있다. (물론 각자의 주소에 맞게 링크 수정을 해주어야한다.) 삽입할 위치를 잘 모르겠다면, (어디에 놓아도 큰 상관은 없지만) 라고 적힌 ..
2024.01.03
no image
Typescript / Javascript 환경에서 메르센-트위스터 [MT19937] 알고리즘 사용하여 난수 생성하기
Typescript 환경에서 난수를 사용 해야 하는 니즈가 있었다. 단순히 seedrandom 같은 라이브러리를 사용해도 되었지만, 의사난수 생성 알고리즘 중 메르센-트위스터 19937 알고리즘에 관심이 생겨 사용하고자 하였다. 가볍게 깃헙에서 구현된 코드를 발견하였고 (https://gist.github.com/aradzie/c12da8c537e83c0fae52), 그대로 가져다가 사용하였다. 그런데 온라인에 구현된 메르센-트위스터 생성기와 시드가 동일함에도 불구하고 다른 난수를 생성함을 우연히 발견하였다. (온라인에서 발견한 난수생성 사이트 https://asecuritysite.com/primes/twister) 구현된 코드를 비교해 보았을 때 크게 다른 점이 없어서 의문이었다. 직접 cpp 컴파일..
2023.12.06
no image
[웹개발] lockcept-world
웹개발 공부를 위해서 Lockcept World를 만들어보았다. 목적은 여러 서비스를 위한 콘솔 형태를 만드는 것이다. AWS console이나 Google console 이 매력적이여서 따라해보고 싶었다. 실제로 별 효용은 없다. 깃허브 현재는 깃헙 레포가 비공개인데 3월 중으로 배포된 버전을 내리고 레포를 public으로 전환할 예정이다~ Front React, Typescript Material-UI AWS S3 Back Node.js, Typescript Serverless Framework AWS API-Gateway & Lambda EC2를 사용하지 않음으로써 편리한 스케일링이 가능하다. 메인 화면 실제로 구현된 서비스는 Account Setting 밖에 없음 어느 정도 반응형으로 구현되어있어..
2021.02.27
no image
핸즈 온 머신러닝 :: 16. 강화 학습
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 16. 강화 학습 강화 학습 (Reinforcement Learning)은 요즘 머신러닝에서 흥미진진한 분야이며 오래된 분야이다. 2017년 5월 알파고가 바둑 세계챔피언 커제를 이기며 성과의 절정에 다다랐다. 강화 학습 분야에 강력한 딥러닝을 적용했더니 상상 이상의 성능을 낸 것이다. 16.1 보상을 최적화하기 위한 학습 에이전트(agent)는 관측(observation)을 하고 주어진 환경(environment)..
2020.02.02
no image
핸즈 온 머신러닝 :: 15. 오토인코더
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 15. 오토인코더 데이터들을 효율적으로 표현할 수 있는 coding을 학습할 수 있는 인공 신경망을 오토인코더라고 부른다. 따라서 오토인코더는 차원축소에 유용하며 특성 추출기처럼 작동하므로 심층 신경망의 비지도 사전훈련에 사용될 수 있다. 또한 훈련 데이터와 비슷한 새로운 데이터를 생성할 수 있는데 이를 generative model이라고 부른다. 오토데이터는 입력과 같은 출력을 특정 조건하에서 학습하며 배운다. 1..
2020.01.31
no image
핸즈 온 머신러닝 :: 14. 순환 신경망
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 14. 순환 신경망 순환 신경망 (recurrent neural networks)은 미래를 예측할 수 있는 신경망이다. 주식가격 예측, 자율 주행 시스템에서 차의 이동경로 예측 등을 도운다. 입력은 임의 길이를 가진 sequence 일 수 있다. 또한 RNN의 창의성을 활용하여 멜로디 제작, 문장 생성, 이미지 캡션 생성 등을 할 수 있다. 14.1 순환 뉴런 지금까지는 신호가 입력층에서 출력층 한 방향으로만 흐르는..
2020.01.28
no image
핸즈 온 머신러닝 :: 13. 합성곱 신경망
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 13. 합성곱 신경망 convolutional neural network (CNN)은 대뇌의 시각 피질 연구로부터 시작되었고 이미지 검색 서비스, 자율 주행 자동차, 영상 자동 분류 시스템 등 시각 분야에 큰 기여를 했으며 그 외에도 음성 인식이나 자연어 처리 같은 작업에도 많이 사용된다. 13.1 시각 피질의 구조 시각 피질 안의 많은 뉴런이 작은 local receptive field를 가져, 시야의 일부 범위 ..
2020.01.27
no image
핸즈 온 머신러닝 :: 12. 다중 머신과 장치를 위한 분산 텐서플로
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 12. 다중 머신과 장치를 위한 분산 텐서플로 11장에서는 훈련 속도를 높일 수 있는 여러 기술을 알아보았다면, 12장에서는 텐서플로를 사용해 연산을 여러 개의 장치에 분산시켜서 병렬로 실행시키는 법을 배운다. 텐서플로의 분산 컴퓨팅 기능은 주요한 장점이다. 계산 그래프를 여러 장치와 머신에 어떻게 분할 시킬지 완전히 제어할 수 있고 연산을 다양한 방식으로 병렬화하고 동기화할 수 있어서 모든 종류의 병렬화 방식이 사..
2020.01.24
no image
핸즈 온 머신러닝 :: 11. 심층 신경망 훈련
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 11. 심층 신경망 훈련 10장에 비해서 훨씬 더 깊은 심층 신경망을 훈련시킬 때의 문제들을 살펴보고 해결 방법을 공부한다. 11.1 그래디언트 소실과 폭주 문제 알고리즘이 하위층(입력층)으로 진행됨에 따라 그래디언트가 점점 작아진다면 그래디언트 소실 현상이라고 부르고, 점점 커져서 발산한다면 그래디언트 폭주라고 부른다. 과거 많이 사용되던 로지스틱 활성화 함수와, 평균이 0이고 표준편차가 1인 정규분포 초기화 방법..
2020.01.22
no image
핸즈 온 머신러닝 :: 10. 인공 신경망 소개
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 10. 인공 신경망 소개 뇌의 구조로부터 아이디어를 얻은 것이 artificial neural networks의 핵심 아이디어이다. 그리고 인공 신경망은 딥러닝의 핵심이다. 이는 강력하고 확장성이 좋아서 수백만개의 이미지를 분류하거나, 음성 인식 서비스 등을 진행하거나 게임하면서 학습하는 알파고 등 대규모 머신러닝 문제를 다루기 좋다. 10.1 생물학적 뉴런에서 인공 뉴런까지 인공 신경망 자체는 오래전부터 있었다. ..
2020.01.19
no image
핸즈 온 머신러닝 :: 9. 텐서플로 시작하기
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 9. 텐서플로 시작하기 Tensorflow는 수치 계산을 위한 강력한 라이브러리이다. 계산 그래프를 정의한 다음, 실행하는 형태로 이루어져있다. 텐서플로는 구글 브레인에서 개발하였고 C++로 개발된 python library다. 텐서플로의 장점으로는 자동 미분 기능을 지원한다는 점과 TensorBoard라는 훌륭한 시각화 도구를 활용할 수 있다는 점, 모든 종류의 신경망 구조 및 계산 그래프를 만들 수 있다는 점 등..
2020.01.18
no image
핸즈 온 머신러닝 :: 8. 차원 축소
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 8. 차원 축소 많은 경우 머신러닝 문제는 훈련 샘플 각각이 수백만개의 특성을 가지고 있는데, 이는 훈련을 느리게 하며 성능을 좋지 않게 만든다. 이를 curse of dimensionality 라고 한다. 예를 들어 MNIST 이미지에서는 이미지 경계에 주로 흰색 픽셀이 있으므로 완전히 제거해도 많은 정보를 잃지 않는다. 또한 인접한 픽셀을 합치는 과정을 진행해도 많은 정보를 잃지 않는다. 차원을 축소시키면 일부 ..
2020.01.18