<jupyter_start><jupyter_text>03. Convex function의 의 정의와 예제, 주요 속성, Convexity를 유지하는 연산  Convex Function : https://scipy-lectures.org/advanced/mathematical_optimization/auto_examples/plot_convex.html- 정의 : 함수 f:Rn→R의 정의역이 convex set이고, 임의의 두점 x,y∈dom f를 잇는 선분 위의 모든 점들이 함수 f 위의 점들보다 위에 있다면 그 함수 f는 convex 이다.- f(θx+(1−θ)f(x))≤θf(x)+(1−θ)f(y), with 0≤θ≤1, for all x,y∈dom f- A = (x,f(x)), B = (y, f(y))q1. θx+(1−θ)f(x)의 구간 합이 왜 1이 되어야 하는지?? 그리고 제약이 0<=θ<=1인지??=> 아래 값이 되기 위해서 필요한 것으로 보임 Convex Fnction 속성- f가 convex 이면 그 epigraph는 convex set이고, 그 역도 성립한다.- f가 convex이면, 그 sublevel set 도 convex- First-order characterization : f 의 도메인 dom f가 convex이고, 함수 f의 도메인에 속하는 임의의 x,y 에 대하여 f(y)≥f(x)+∇f(x)T(y−x) 가 성립하면 함수 f는 convex 이며 그 역도 성립한다.- Second-order characterization :  - 정의역이 convex 인 함수 f의 2차 미분이 0보다 크거나 같을 경우, 함수 f는 convex 이며, 그 역 또한 성립한다. - 함수 f의 2차 미분이 0보다 클 경우, 함수 f는 strictly convex 이다.(기울기 변화가 항상 양수)- Jensen's inequality - 함수 f가 convex 이고 n개의 양수 w1,...,wn에 대하여 ∑ni=1wi=1 이라 하자. 이 때 다음이 성립한다. - ∑ni=1wif(xi)≥f(∑ni=1wixi) - 함수 f가 convex 이면 다음 부등식을 만족한다. - f(tx1+(1−t)x2)≤tf(x1)+(1−t)f(x2), for 0≤t≤1  - q1 : t와 1-t 를 나누어서 평균한다. ![image.png](attachment:image.png)조건 Concave Function- 정의 : 함수 −f가 convex이면, f는 concave라고 한다.<jupyter_code>import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-1, 2)

plt.figure(1, figsize=(3, 2.5))
plt.clf()

# A convex function
plt.plot(x, x**2, linewidth=2)
plt.text(-.7, -.6**2, '$f$', size=20)

# The tangent in one point
plt.plot(x, 2*x - 1)
plt.plot(1, 1, 'k+')
plt.text(.3, -.75, "Tangent to $f$", size=15)
plt.text(1, 1 - .5, 'C', size=15)

# Convexity as barycenter
plt.plot([.35, 1.85], [.35**2, 1.85**2])
plt.plot([.35, 1.85], [.35**2, 1.85**2], 'k+')
plt.text(.35 - .2, .35**2 + .1, 'A', size=15)
plt.text(1.85 - .2, 1.85**2, 'B', size=15)

plt.ylim(ymin=-1)
plt.axis('off')
plt.tight_layout()

# Convexity as barycenter
plt.figure(2, figsize=(3, 2.5))
plt.clf()
plt.plot(x, x**2 + np.exp(-5*(x - .5)**2), linewidth=2)
plt.text(-.7, -.6**2, '$f$', size=20)

plt.ylim(ymin=-1)
plt.axis('off')
plt.tight_layout()
plt.show()<jupyter_output><empty_output><jupyter_text>Strictly Convex- 정의 : 함수 f:Rn→R가 임의의 서로 다른 두 점 x,y∈dom f 과 0<θ<1에 대해 다음의 조건을 만족하면 이를 strictly convex 이라 한다.- f(θx+(1−θ)y)<θf(x)+(1−θ)f(y), with 0<θ<1, x≠y, for all x,y∈dom f Strongly Convex- 정의 : f−m/2* sqaure(2norm(∥x∥)), with m>0 가 convex 이면 f는 strongly convex이다.- https://xingyuzhou.org/blog/notes/strong-convexity:~:text=Intuitively%20speaking%2C%20strong%20convexity%20means,grater%20than%20the%20linear%20growth.- http://www.stat.cmu.edu/~larry/=sml/convexopt.pdf- https://ai.stanford.edu/~gwthomas/notes/convexity.pdf- https://statisticaloddsandends.wordpress.com/2020/05/14/strictly-strongly-convex-functions/ Q1- why strict와 strong을 정의하는지?  종류- Exponential function- Power function- affine- quadratic- least squares loss- norm- indicator function- support function- max function Univariate function Power function Affine 함수- 정의 : inear 함수를 포함한 모든 affine 함수 f(x)=aTx+b 는 다음 식을 만족한다.- f(θx+(1−θ)y)=aT(θx+(1−θ)y)+b=θaTx+(1−θ)aTy+θb+(1−θ)b=θf(x)+(1−θ)f(y)   for all x,y∈dom f, with 0≤θ≤1- affine 함수는 항상 convex이며, 동시에 concave 이다. Quadratic function Least squares loss Norm Indicator function Support function Max function  2. General compositionn차원에서 1차원으로 매핑하는 함수 g와 1차원에서 1차원으로 매핑하는 함수 h가 있다고 가정하자.이 두 함수의 합성함수 f(x)=h(g(x))는 다음의 경우 convex이거나 concave 이다.composition of g:Rn→R and h:R→R:f(x)=h(g(x))- g가 convex이고 h가 convex이며 h가 감소하지 않으면 (nondecreasing) f는 convex 이다.- g가 concave이고 h가 convex이며 h가 증가하지 않으면 (nonincreasing) f는 convex 이다.- g가 concave이고 h가 concave이며 h가 감소하지 않으면 (nondecreasing) f는 concave 이다.- g가 convex이고 h가 concave이며 h가 증가하지 않으면 (nonincreasing) f는 concave 이다. proof- for n=1 diﬀerentiable g,h- f′′(x)=h′′(g(x))g′(x)2+h′(g(x))g′′(x) [note]extended-value extension h에 대한 단조성(monotonicity)은 반드시 유지되어야 한다. Example- g가 convex이면, expg(x)는 convex 이다.- g가 concave이고 positive 하면, 1/g(x)는 convex 이다.<jupyter_code>- pointwise example
https://github.com/OscarEngelbrektson/SyntheticControlMethods/blob/master/examples/user_guide.ipynb<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1689040761532829, 'fraction_numerical': 0.04027337075909202, 'mean_word_length': 4.471295060080107, 'pattern_counts': {'":': 0, '<': 16, '<?xml version=': 0, '>': 11, 'https://': 5, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '476818', 'license': 'Apache-2.0', 'n_tokens_mistral': 2331, 'n_tokens_neox': 2412, 'n_words': 501, 'path': '03_ConvexFunction.ipynb', 'repo_name': 'cwh1981/convex_optimization_example', 'size': '4097'}