전체 글 451

SGD, Momentum, AdaGrad, RMSprop, Adam

SGD, Momentum, AdaGrad, RMSprop, Adam 가중치 매개변수의 최적값을 탐색하는 최적화 방법, 가중치 매개변수 초깃값, 하이퍼파라미터 설정 방법 등 신경망에서 중요한 주제.오버피팅의 대응책인 가중치 감소와 드롭아웃 등의 정규화 방법도 간략히 설명하고 구현. 마지막으로 최근 많은 연구에서 사용하는 배치 정규화도 짧게 알아보고자 함. 목차SGD (확률적 경사 하강법)Momentum (모멘텀)AdaGradRMSpropAdam각각의 시각화 코드 샘플 SGD (확률적 경사 하강법) 확률적 경사 하강법이란 단순한 방법인데, 매개변수의 기울기를 구해 매개변수 값을 갱신하는 일을 할 때 단순하고 구현이 쉽지만, 문제에 따라서 비효율적일 때가 있음.등고선x축 방향으로 길쭉한 타원형 등고선이 나..

AI/DeepLearning 2025.11.09

활성화 함수 계층 기본 구현 정리

활성화 함수 계층 기본 구현 정리 신경망을 구성하는 층을 각각에 대해서 기본적인 것들을 정리. 아래 샘플 코드에서 사용되는 주요 Numpy와 Python 문법 정리이거 모르면 아래 코드 읽는데 상당히 어려움.주로 사용하는 언어가 정적 타이핑언어인데, 동적 타이핑 언어를 사용하는 경우 사고 전환이 아직까지도 좀 불편한 부분이 있어서 차이점을 느끼는 부분을 위주로 정리하고자 함. 1. 파이썬에서는 인스턴스 변수는 __init__에서 선언하는 것이 원칙.하지만 새롭게 만든다고해서 동작하지 않는것은 아님. class SomeClass: def __init(self): self.mask = None 2. numpy에서 불리언 인덱싱 문법True/False 배열을 이용해서 원하는 위치만 선택하는 ..

AI/DeepLearning 2025.11.09

경사하강법 (Gradient Descent)

경사하강법 (Gradient Descent) 신경망 학습의 핵심은 가중치(weight)를 최적의 값으로 찾아내는 것.이때 손실(loss)을 최소화하는 방향으로 가중치를 조금씩 조정하는 알고리즘이 바로 경사하강법(Gradient Descent)임. 경사하강법이란? 최적의 매개변수를 찾아내기 위해 손실 함수가 최솟값이 될 때의 매개변수 값을 찾기 위한 방법매개변수 공간이 광대하여 어디가 최솟값이 될 지 짐작할 수 없는 경우 기울기를 이용해 함수의 최솟값 혹은 가장 작은 것을 찾으려고 하는 방법 기울기를 따라 나아가지만, 그 지점이 정말 최솟값인지는 보장할 수 없음. 함수가 극솟값, 최솟값, 또 안장점이 되는 장소에서는 기울기가 0임. 평평한 곳으로 파고들면서 고원이라 하는 학습이 진행되지 않는 정체기에 빠..

AI/DeepLearning 2025.11.09

오차역전파

오차역전파 신경망 학습에서 가중치 매개변수의 기울기를 구할 때 수치 미분을 이용해 구할 수 있는데, 수치 미분은 단순하고 구현하기도 쉽지만 계산이 오래 걸린다는 단점이 존재.매개변수의 기울기를 효율적으로 계산하는 방법으로 오차역전파라고 함. Input에서 Output으로 값을 전파하면서 보내는 것을 순전파(forward propagation)이라고 부르며, 값을 보내는 것.역전파는 반대로 Output에서 Input 방향으로 향하며, 가중치를 재업데이트 함. Input에서 Ouput이 나오는 과정에서 결과값은 오차(Error)를 가지는데, 역전파는 다시 오차를 역방향으로 은닉층과 Input 방향으로 보내면서 가중치를 계산하면서 Output에서 발생했던 오차를 돌려보냄. 1번 학습하는 것을 1 epoch라..

AI/DeepLearning 2025.11.05

UNUserNotificationCenter `requestAuthorization`에서 발생하는 희귀한 버그 현상 분석

UNUserNotificationCenter `requestAuthorization`에서 발생하는 희귀한 버그 현상 분석 사내에 2021년에 작성된 코드에서 앱이 멈추는 상황이 발생해서 사례 분석앱 시작 직후가 아닌, 사용자에게 별도 페이지에서 안내 후 버튼 클릭을 통한 권한 요청의 동선 상세한 분석 링크https://github.com/lgvv/unusernotificationcenter-requestauthorization-blocking-simulation GitHub - lgvv/unusernotificationcenter-requestauthorization-blocking-simulation: Investigating Rare Bugs in UNUserNotificationCeInvestiga..

l-value, r-value

l-value, r-value프로젝트 내 C, C++, objective-c, swift 코드가 존재하여 이를 분석하면서 개념 정리. 용어 정리 L-value (locator value)란?메모리상의 위치(location) 를 가리키는 표현식.: 대입의 왼쪽에 올 수 있는 것(항상은 아님). 변수, 배열 원소, 프로퍼티, deref(*p) 등.: 즉, 여기에 값을 저장할 수 있음. R-value (read value / right value)란? 실제 값(리터럴, 계산 결과, 일시적인 임시객체).: 보통 대입의 오른쪽에 오는 것. 임시값이므로 주소를 갖지 않거나 곧 사라짐.: 즉, 이건 읽을 수는 있지만, 직접 이곳에 값을 저장할 수는 없다. ** 참고 ** : 현대 언어는 이분법을 확장.: 예: C++..

ARC in Swift: Basics and beyond - WWDC21

ARC in Swift: Basics and beyond - WWDC21 Swift에서는 가능하다면 Value Type 사용하는게 더 좋은데 Reference Type을 사용해서 의도치 않은 데이터 공유에 따른 오류를 피할 수 있음.그럼에도 불구하고 class와 같은 Reference Type을 사용해야 한다면 Swif에서 ARC를 통해 메모리를 관리하고 효과적으로 코드를 작성하기 위해서는 ARC의 동작 방식을 이해하는게 도움이 됨. Object lifetimes and ARC: Swift에서 객체 수명과 ARC에 대한 리뷰Observable object lifetimes: 관찰 가능한 객체의 수명이 무엇인지 설명: 관찰 가능하게 만드는 언어적 특징과 관촬된 객체 수명에 의조낳는 것의 결과와 이를..

apple/WWDC 2025.10.23

Adaptive Bit Streaming

Adaptive Bit Streaming Adaptive Bitrate Streaming란 네트워크 환경에 따라 실시간으로 비디오 스트림의 비트레이트(화질)을 동적으로 조절해 시청자에게 끊김 없는 최적의 시청 경험을 제공하는 기술 동작 방식비디오 서버는 하나의 원본 영상을 여러가지 비트레이트와 해상도로 인코딩하여 저장. 시청자의 비디오 플레이어는 현재 네트워크 대역폭(bandwidth)를 지속적으로 모니터링하면서 대역폭이 충분하면 고화질(높은 비트레이트) 세그먼트(segment)를 요청하고대역폭이 충분하지 않다면 저화질(낮은 비트레이트) 세그먼트로 자동으로 전환하면서 동적으로 동작 동작 방식에 대한 이미지이미지를 동적으로 변경하면서 실행 주요 프로토콜Apple - HLS (HTTP Live Stream..

Secure your app with Memory integrity Enforcement (메모리 무결성 강화로 앱 보호하기)

Secure your app with Memory integrity Enforcement (메모리 무결성 강화로 앱 보호하기) 메모리 무결성 강화를 통해 앱을 보호하는 방법. Memory corruption: Most common vulnerability (메모리 손상) > 공격자는 메모리 버그를 이용해 앱의 제어권을 장악하고 사용자의 민감한 데이터를 훔칠 수 있음. 예를 들어 버퍼 오버플로우는 버퍼의 경계를 넘어 다른 할당의 메모리를 손상시킴.: 이런 경우에 다른 포인터가 메모리를 읽을 때 데이터 손상과 재현하기 어려운 충돌이 발생할 수 있음. Use-after-free memory corruption 앱이 메모리 chunk를 할당 해제했지만 해당 메모리에 dangling pointer가 남아 있는..

apple/WWDC 2025.10.19

Elevating an app with Swift concurrency (Swift 동시성으로 앱 수준 높이기)

Elevating an app with Swift concurrency (Swift 동시성으로 앱 수준 높이기) Asynchronous code: 단일 스레드에서 시작해서 필요에 따라 비동기 코드 도입Parallelism: 앱 성능 개선을 위해 자원이 많이 소모되는 작업을 오프로드하고 병렬로 실행Data-race safety: 일반적인 데이터 경쟁 안전 시나리오와 해결을 위한 접근 방식도 알아봄Structured concurrency: 구조화된 동시성을 살펴보고 동시성 코드를 더 세밀하게 조정하는 TaskGroup 등도 사용 Asynchronous code Xcode에 몇가지 기능이 추가되어 동시성을 더 쉽게 도입할 수 있음.: Approachable Concurrency를 YES로 설정: Def..

apple/WWDC 2025.10.19