{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# How to optimize a simple 1D function\n", "\n", "In this tutorial we will learn, how to optimize a simple noisy 1D test function." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import bask\n", "from bask import Optimizer\n", "plt.style.use('bmh')\n", "colors = plt.cm.get_cmap(\"Set1\").colors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Specifying the target function\n", "First we start by simulating our 1d target function:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def test_function(x):\n", " return -(1.4 - 3 * x) * np.sin(18 * x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here you can set the noise (standard deviation) of the generated data. To keep the execution time of this notebook short, we will set it to $0.1$. You can experiment with setting it to different values:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "rand = np.random.RandomState(123)\n", "noise = 1e-1" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "application/pdf": "JVBERi0xLjQKJazcIKu6CjEgMCBvYmoKPDwgL1BhZ2VzIDIgMCBSIC9UeXBlIC9DYXRhbG9nID4+CmVuZG9iago4IDAgb2JqCjw8IC9FeHRHU3RhdGUgNCAwIFIgL0ZvbnQgMyAwIFIgL1BhdHRlcm4gNSAwIFIKL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUIgL0ltYWdlQyAvSW1hZ2VJIF0gL1NoYWRpbmcgNiAwIFIKL1hPYmplY3QgNyAwIFIgPj4KZW5kb2JqCjEwIDAgb2JqCjw8IC9Bbm5vdHMgWyBdIC9Db250ZW50cyA5IDAgUgovR3JvdXAgPDwgL0NTIC9EZXZpY2VSR0IgL1MgL1RyYW5zcGFyZW5jeSAvVHlwZSAvR3JvdXAgPj4KL01lZGlhQm94IFsgMCAwIDU0NC4zODEyNSAzMDQuNzcxODc1IF0gL1BhcmVudCAyIDAgUiAvUmVzb3VyY2VzIDggMCBSCi9UeXBlIC9QYWdlID4+CmVuZG9iago5IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTEgMCBSID4+CnN0cmVhbQp4nNWZS5MVRw6F9/dX5BIWTjKVytcSwmMivLNNzCyGWTjaYEPwCIwZ5ufPJ1X3rapLQ7fvTDRhCB73dF6l8kg6Ulbl8PKQw68hhZf8+Rj+Gf7Fv7+EHB7z59dD4tPrQ1WNZWSpfHq1+VSSxt7z6BU47T/+djg8Pzx4iJH3IcVZrn75Zo9PoMOhaJxuU1Isiw32LT3mE/TVFp091it4tbBF3Y134RrzNUmUIL3z9+/Pwj/Cm/DgoZi72ciI1enIcXDqOBZeDim2OVKZkmvnFA++ffbvFxfPfnz8KFy8P9QeRxpVyv4QK7p17PDT4Yfw7mrLBC3LtmMTBScKdm40XOI42n1EQD8eHj0JD77LIafw5PlBJ6eoZfYuvYQZpTsXT3453Esx3Q9PXoa/PXF3/i88HfD8Szzlgr9zapHdebbwuUzdwvQNXHH4OLWV1EYeckqW3DlZkmacMxXNuxNt4XPJuoXpG8gSjptKx/GZZj4lS++erNFi+kRGNujZVN1k+Cai+ohZfOkJSe3OSSpNYvaY7Q6zhc+l6RambyCqVI2SLfsSKXVK1rhzsrSMKK4GuxNt4XPJuoXpm3S98L1kukY/HHuy8lcQ9pqZDLzP7BvVBj67Bd5s+gayampRkzVMoQ2eknX3wn7cpOQ4axq6n3hW9E+W4HVmSSn91OpC0jv+TuGbhE07nCBURmhKFUW/eL0nccDHmKn5KLgwV425A8y9YzpKZovfV//h+5z65c9///DTz2/ef/P6xZsP78O3bw8/2O87Z7p1Ghv/KTumV/RMprdmj0zvrF7LdNOYKd0+SsntNkynvw7TmatA4lhNdlRv4DO53hk+kr23ey3bOTG9Fe2jtaRyM93pr5TYWXGsS+p7to/ouWRvzK5cb61eN0BXFJ5lpaGwlQwfvfWvdtdYz9JbzFlIgD1HK3wuSVvDK0s7u1+gqUssuTayV6dsM+/r0CSZUa3KGG1//17hM2naGT7StLf7eZokUaCwlLMKk87XGnDWTZQ2OYvMk8cUK3wuTVvDK007u1+gyR7NzKZ5NjrLtkF/JZoG03wpPe077gY+l6at4ZWmnd0v0DS4nJY2pM/WlmyS/yGbJHzvPsvqMR0DZtpo0tVo06kZSdBO94j96kc1/HhK3eapzlZ9uUCppDRB84i4LaYrzBje9UqYMzbOPRS059i0wEMYhW8VXVDkuOpIGnoyA6layUEEDbF0DXZFG9IWtEbtfaoGvKFjSjF04s6YTNyG1qHTQY09ZRwOLceimptxjzslYwx04NhMNYPmVOIUFWjlOkzNkxEOj1hL7ST3xMbQXKyN51xi1l5aI3jVpvzqh4bH2OuY+JTzJEzclXy9oKQ9MebTe5SMmLm7eWksgkZwKyPuVos3zMIVK9pDboSrttZ8vTWuVCWDQ1WBnWplZ+EYufVh+CAyvct0HLZkcICQIdxypThe4avMidMZQglJ87E7c8NtsDgXvFYcb47Pq3uf26nahq9vdrHRVobvO7K25VzN0r4Jt2RrIrPPSx56iYkLUQdvNKHKgfy8ZG4ngxS8YqeWsawf8IaVbLhRUrW7PwPeithyVGVQ6sPpJ0ZV1Vke7Ko+cyE47FQJvnGPTtVpSUfKRro/0xc3VYtUW9Bq01anGLJM2qRmv7VtHjxlsbxhUPP1XPKQ/pmX9YXM9LYqhF/Yb4ATTOwwbhhuV0GpxDDYgz9AaQs+rOybyDKdFE3dcRYlrEzxM43BmRa8E6nZOSEuYn9JTDKYySbbg2u6EYR1ze6ONr4rHADcYqBLPQqsUv+ksq837jzgZFzMiWl0KfVqheY42dgRCwot40El17U7Dm0y89DlWJrTdH8atHGUqk5bH0xcvm9XviyEELxAJ9Xv9juck07Um4mJLkIHTtZ1rDTDYZCE8UIh7lQlomo4Oc1pi593knUENdn8jZ/U23DauOO3nLIVHHfuUWDZRKGYgFJWajgFhD/e9osv8ksQFFNwHMDsFz6o+qKcm+kURh1vEfVSKzih0FFTtX1J4oicJy73xk8fiKzDlXBNwuSJXHtJWRyfEY2gosl7m1W7SSY4CYzWd6s3SkwmQufvF4qnaklWhzBueuHbEusudZCSGYmkBrDpOLShrGr4xM1qiQpeoU0n+RysEKY/aHYcDiFzGM56riLF990+U0Pme7cuYnjjjMVESGAQ1qX5vuh/mdw7bVeplKCfFv1PbGUiRWl1ss5yBA0gVgOlJy5kL1LheyJMUhJ0m1RQnjKX1VCmQFZwUACVLo2FLqCVMdYKFMmcY5EW1C8mBFayX78aqSaGK42gUVYzh5Fj10sQsocVgd2Me0rDlUWZEC8f3SOoNZmuOwxbpCP7WJskmBYLLCHwUlEcokick1eC0gI6skKlFVPKy6dEWqxlVUo5UGeMmOJ1poWoYGKUQEX3SgiNV7UabQPd9FY3Cqw4XNF8V6phRdzRHYcnXZYQwCynrZTz4jfqz/FJ30XLBq3YXUT9k2m1ejYOqwK3g/ojC92KjOmG8DA3OA5bZdgMIVY0NgA5TiugNduXhXM0zqFuH/VXJIXwmu7wswVG/JkxqGImmxwnQrS4ifibB4wDYiESGxyAEX+ZjR7qs9bK5LRE7m0uy9myV4tHJeouvx3zyaY0Ty8oinQEkhdnCAiDgOdXJb/JBrQsiJEjaJSb2T78wyLBLp+OjjaGLWMj+kldoApkx+dn0+0D6mvfHWL+ujeQrz/3BpL1f+I15m71auZL1h88LMuM/P0nr1R9SrfTf/pqldZ1uQslPu1tGA0DoexXiM0G3KYSFVAuIQOuljCjNJ+NtiCzQbg4bBCTvitXtzCb04hdNNc96ByXize+rODFxucVNYlAQ6iqvoVNiC6XHvfaYGk1uqLu/qstcDzkZg9n4oS9C3uj/Ojw+ck/3HryP5y+adjcbXR5Ns3gfw3queBJ4Jelj8fr0e6u04+Oo0tzfdb9/Om9/zy9H57e+/jij9/efvgjvHn74v2zp/eP15/DfwHc/J9zCmVuZHN0cmVhbQplbmRvYmoKMTEgMCBvYmoKMjI1NAplbmRvYmoKMTYgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyNDUgPj4Kc3RyZWFtCnicRVC7jUMxDOs9BRcIYP0se553SJXbvz1KRnCFIVo/kloSmIjASwyxlG/iR0ZBPQu/F4XiM8TPF4VBzoSkQJz1GRCZeIbaRm7odnDOvMMzjDkCF8VacKbTmfZc2OScBycQzm2U8YxCuklUFXFUn3FM8aqyz43XgaW1bLPTkewhjYRLSSUml35TKv+0KVsq6NpFE7BI5IGTTTThLD9DkmLMoJRR9zC1jvRxspFHddDJ2Zw5LZnZ7qftTHwPWCaZUeUpnecyPiep81xOfe6zHdHkoqVV+5z93pGW8iK126HV6VclUZmN1aeQuDz/jJ/x/gOOoFk+CmVuZHN0cmVhbQplbmRvYmoKMTcgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzOTIgPj4Kc3RyZWFtCnicPVJLbgUxCNvPKbhApfBNcp6p3u7df1ubzFSqCi8DtjGUlwypJT/qkogzTH71cl3iUfK9bGpn5iHuLjam+FhyX7qG2HLRmmKxTxzJL8i0VFihVt2jQ/GFKBMPAC3ggQXhvhz/8ReowdewhXLDe2QCYErUbkDGQ9EZSFlBEWH7kRXopFCvbOHvKCBX1KyFoXRiiA2WACm+qw2JmKjZoIeElZKqHdLxjKTwW8FdiWFQW1vbBHhm0BDZ3pGNETPt0RlxWRFrPz3po1EytVEZD01nfPHdMlLz0RXopNLI3cpDZ89CJ2Ak5kmY53Aj4Z7bQQsx9HGvlk9s95gpVpHwBTvKAQO9/d6Sjc974CyMXNvsTCfw0WmnHBOtvh5i/YM/bEubXMcrh0UUqLwoCH7XQRNxfFjF92SjRHe0AdYjE9VoJRAMEsLO7TDyeMZ52d4VtOb0RGijRB7UjhE9KLLF5ZwVsKf8rM2xHJ4PJntvtI+UzMyohBXUdnqots9jHdR3nvv6/AEuAKEZCmVuZHN0cmVhbQplbmRvYmoKMTggMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxMzMgPj4Kc3RyZWFtCnicTY9BEsMwCAPvfoWegLEB8550ekr+fy2QNu4F7YyAkYYwCDxiDOswJbx6++FVpEtwNo75JRlFPAhqC9wXVAVHY4qd+Njdoeyl4ukUTYvrEXPTtKR0N1Eqbb2dyPjAfZ/eH1W2JJ2CHlvqhC7RJPJFAnPYVDDP6sZLS4+n7dneH2Y+M9cKZW5kc3RyZWFtCmVuZG9iagoxOSAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDI0NyA+PgpzdHJlYW0KeJxNUbttRDEM698UXOAA62t5ngtSXfZvQ8kIkMIgoS8ppyUW9sZLDOEHWw++5JFVQ38ePzHsMyw9yeTUP+a5yVQUvhWqm5hQF2Lh/WgEvBZ0LyIrygffj2UMc8734KMQl2AmNGCsb0kmF9W8M2TCiaGOw0GbVBh3TRQsrhXNM8jtVjeyOrMgbHglE+LGAEQE2ReQzWCjjLGVkMVyHqgKkgVaYNfpG1GLgiuU1gl0otbEuszgq+f2djdDL/LgqLp4fQzrS7DC6KV7LHyuQh/M9Ew7d0kjvfCmExFmDwVSmZ2RlTo9Yn23QP+fZSv4+8nP8/0LFShcKgplbmRzdHJlYW0KZW5kb2JqCjIwIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggOTAgPj4Kc3RyZWFtCnicTY1BEsAgCAPvvCJPUETQ/3R60v9fq9QOvcBOAokWRYL0NWpLMO64MhVrUCmYlJfAVTBcC9ruosr+MklMnYbTe7cDg7LxcYPSSfv2cXoAq/16Bt0P0hwiWAplbmRzdHJlYW0KZW5kb2JqCjIxIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTYzID4+CnN0cmVhbQp4nEWQuXUEMQxDc1WBEniAOuoZP0ez/acLabzeQPp4hHiIPQnDcl3FhdENP962zDS8jjLcjfVlxviosUBO0AcYIhNXo0n17YozVOnh1WKuo6JcLzoiEsyS46tAI3w6ssdDW9uZfjqvf+wh7xP/KirnbmEBLqruQPlSH/HUj9lR6pqhjyorax5q2r8IuyKUtn1cTmWcunsHtMJnK1f7fQOo5zqACmVuZHN0cmVhbQplbmRvYmoKMjIgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA2OCA+PgpzdHJlYW0KeJwzMrdQMFCwNAEShhYmCuZmBgophlxAvqmJuUIuF0gMxMoBswyAtCWcgohbQjRBlIJYEKVmJmYQSTgDIpcGAMm0FeUKZW5kc3RyZWFtCmVuZG9iagoyMyAwIG9iago8PCAvQkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzNwovU3VidHlwZSAvRm9ybSAvVHlwZSAvWE9iamVjdCA+PgpzdHJlYW0KeJzjMjQwUzA2NVXI5TI3NgKzcsAsI3MjIAski2BBZNMAAV8KCgplbmRzdHJlYW0KZW5kb2JqCjI0IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTYxID4+CnN0cmVhbQp4nEWQSxLDIAxD95xCR/BHBnyedLpK77+tIU2zgKexQAZ3JwSptQUT0QUvbUu6Cz5bCc7GeOg2bjUS5AR1gFak42iUUn25xWmVdPFoNnMrC60THWYOepSjGaAQOhXe7aLkcqbuzvlHcPVf9Uex7pzNxMBk5Q6EZvUp7nybHVFd3WR/0mNu1mt/FfaqsLSspeWE285dM6AE7qkc7f0FqXM6hAplbmRzdHJlYW0KZW5kb2JqCjI1IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjE0ID4+CnN0cmVhbQp4nD1QuxFDMQjrPQUL5M587TfPy6XL/m0knKRCNkISlJpMyZSHOsqSrClPHT5LYoe8h+VuZDYlKkUvk7Al99AK8X2J5hT33dWWs0M0l2g5fgszKqobHdNLNppwKhO6oNzDM/oNbXQDVocesVsg0KRg17YgcscPGAzBmROLIgxKTQb/rXL3UtzvPRxvooiUdPCu+eX0y88tvE49jkS6vfmKa3GmOgpEcEZq8op0YcWyyEOk1QQ1PQNrtQCu3nr5N2hHdBmA7BOJ4zSlHEP/1rjH6wOHilL0CmVuZHN0cmVhbQplbmRvYmoKMjYgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA4MCA+PgpzdHJlYW0KeJxFjLsNwDAIRHumYAR+JmafKJWzfxsgStxwT7p7uDoSMlPeYYaHBJ4MLIZT8QaZo2A1uEZSjZ3so7BuX3WB5npTq/X3BypPdnZxPc3LGfQKZW5kc3RyZWFtCmVuZG9iagoyNyAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDE0NyA+PgpzdHJlYW0KeJw9T7kNAzEM6z0FFzjAeixb81yQ6rJ/G8pGUggiQPGRZUfHClxiApOOORIvaT/4aRqBWAY1R/SEimFY4G6SAg+DLEpXni1eDJHaQl1I+NYQ3q1MZKI8rxE7cCcXowc+VBtZHnpAO0QVWa5Jw1jVVl1qnbACHLLOwnU9zKoE5dEnaykfUFRCvXT/n3va+wsAby/rCmVuZHN0cmVhbQplbmRvYmoKMjggMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxNDkgPj4Kc3RyZWFtCnicNY9LDgMhDEP3OYUvMFJ+hHAeqq6m9982YVoJCQvbL8EWg5GMS0xg7Jhj4SVUT60+JCOPukk5EKlQNwRPaEwMM2zSJfDKdN8ynlu8nFbqgk5I5OmsNhqijGZew9FTzgqb/svcJGplRpkDMutUtxOysmAF5gW1PPcz7qhc6ISHncqw6E4xotxmRhp+/9v0/gJ7MjBjCmVuZHN0cmVhbQplbmRvYmoKMjkgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA0OSA+PgpzdHJlYW0KeJwzNrRQMFAwNDAHkkaGQJaRiUKKIRdIAMTM5YIJ5oBZBkAaojgHriaHKw0AxugNJgplbmRzdHJlYW0KZW5kb2JqCjMwIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMzMyID4+CnN0cmVhbQp4nC1SOY4kMQzL/Qp+YADr8vGeHkzU+/90SVUFBapsyzzkcsNEJX4skNtRa+LXRmagwvCvq8yF70jbyDqIa8hFXMmWwmdELOQxxDzEgu/b+Bke+azMybMHxi/Z9xlW7KkJy0LGizO0wyqOwyrIsWDrIqp7eFOkw6kk2OOL/z7FcxeCFr4jaMAv+eerI3i+pEXaPWbbtFsPlmlHlRSWg+1pzsvkS+ssV8fj+SDZ3hU7QmpXgKIwd8Z5Lo4ybWVEa2Fng6TGxfbm2I+lBF3oxmWkOAL5mSrCA0qazGyiIP7I6SGnMhCmrulKJ7dRFXfqyVyzubydSTJb90WKzRTO68KZ9XeYMqvNO3mWE6VORfgZe7YEDZ3j6tlrmYVGtznBKyV8NnZ6cvK9mlkPyalISBXTugpOo8gUS9iW+JqKmtLUy/Dfl/cZf/8BM+J8AQplbmRzdHJlYW0KZW5kb2JqCjMxIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMzE3ID4+CnN0cmVhbQp4nDVSS3JDMQjbv1Nwgc6Yv32edLJq7r+thCcrsC1AQi4vWdJLftQl26XD5Fcf9yWxQj6P7ZrMUsX3FrMUzy2vR88Rty0KBFETPfgyJxUi1M/U6Dp4YZc+A68QTikWeAeTAAav4V94lE6DwDsbMt4Rk5EaECTBmkuLTUiUPUn8K+X1pJU0dH4mK3P5e3KpFGqjyQgVIFi52AekKykeJBM9iUiycr03VojekFeSx2clJhkQ3SaxTbTA49yVtISZmEIF5liA1XSzuvocTFjjsITxKmEW1YNNnjWphGa0jmNkw3j3wkyJhYbDElCbfZUJqpeP09wJI6ZHTXbtwrJbNu8hRKP5MyyUwccoJAGHTmMkCtKwgBGBOb2wir3mCzkWwIhlnZosDG1oJbt6joXA0JyzpWHG157X8/4HRVt7owplbmRzdHJlYW0KZW5kb2JqCjMyIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTcgPj4Kc3RyZWFtCnicMza0UDCAwxRDLgAalALsCmVuZHN0cmVhbQplbmRvYmoKMzMgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxMzEgPj4Kc3RyZWFtCnicRY/LDQQhDEPvVOES8hk+qYfVntj+r+swmkFC+EEiO/EwCKzz8jbQxfDRosM3/jbVq2OVLB+6elJWD+mQh7zyFVBpMFHEhVlMHUNhzpjKyJYytxvhtk2DrGyVVK2DdjwGD7anZasIfqltYeos8QzCVV64xw0/kEutd71Vvn9CUzCXCmVuZHN0cmVhbQplbmRvYmoKMzQgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyNDggPj4Kc3RyZWFtCnicLVE5kgNBCMvnFXpCc9PvscuR9//pCsoBg4ZDIDotcVDGTxCWK97yyFW04e+ZGMF3waHfynUbFjkQFUjSGFRNqF28Hr0HdhxmAvOkNSyDGesDP2MKN3pxeEzG2e11GTUEe9drT2ZQMisXccnEBVN12MiZw0+mjAvtXM8NyLkR1mUYpJuVxoyEI00hUkih6iapM0GQBKOrUaONHMV+6csjnWFVI2oM+1xL29dzE84aNDsWqzw5pUdXnMvJxQsrB/28zcBFVBqrPBAScL/bQ/2c7OQ33tK5s8X0+F5zsrwwFVjx5rUbkE21+Dcv4vg94+v5/AOopVsWCmVuZHN0cmVhbQplbmRvYmoKMzUgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxNzEgPj4Kc3RyZWFtCnicTZBNDkIhEIP3nKIXMKHzA4/zaFzp/bd28PnigvRLIUOnwwMdR+JGR4bO6HiwyTEOvAsyJl6N85+M6ySOCeoVbcG6tDvuzSwxJywTI2BrlNybRxT44ZgLQYLs8sMXGESka5hvNZ91k35+u9Nd1KV199MjCpzIjlAMG3AF2NM9DtwSzu+aJr9UKRmbOJQPVBeRstkJhailYpdTVWiM4lY974te7fkBwfY7+wplbmRzdHJlYW0KZW5kb2JqCjM2IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggODggPj4Kc3RyZWFtCnicNYy7EcAwCEN7T8EIBouP98mlSvZvg+3QgKR394KDOkHyuBspnC5u2Vd6G4+TniYAsfRMQ+3fYEXVi1oULV9uY9BiKr4/+iQglnXyXjj0kBLeH8UXHXsKZW5kc3RyZWFtCmVuZG9iagozNyAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDg3ID4+CnN0cmVhbQp4nDVNuRHAMAjrmYIRzKPY7JNL5ezfBuy4QTp9IJQba+QBguGdbyH4pi8ZhHUITyq7JTpsoYazCpKJ4Vc2eFWuiva1konsbKYx2KBl+tHOt0nPB6XeG5gKZW5kc3RyZWFtCmVuZG9iagozOCAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDIxMCA+PgpzdHJlYW0KeJw1UMsNQzEIu2cKFqgUAoFknla9df9rbdA7YRH/QljIlAh5qcnOKelLPjpMD7Yuv7EiC611JezKmiCeK++hmbKx0djiYHAaJl6AFjdg6GmNGjV04YKmLpVCgcUl8Jl8dXvovk8ZeGoZcnYEEUPJYAlquhZNWLQ8n5BOAeL/fsPuLeShkvPKnhv5G5zt8DuzbuEnanYi0XIVMtSzNMcYCBNFHjx5RaZw4rPWd9U0EtRmC06WAa5OP4wOAGAiXlmA7K5EOUvSjqWfb7zH9w9AAFO0CmVuZHN0cmVhbQplbmRvYmoKMTQgMCBvYmoKPDwgL0Jhc2VGb250IC9EZWphVnVTYW5zIC9DaGFyUHJvY3MgMTUgMCBSCi9FbmNvZGluZyA8PAovRGlmZmVyZW5jZXMgWyAzMiAvc3BhY2UgNDAgL3BhcmVubGVmdCAvcGFyZW5yaWdodCA0NiAvcGVyaW9kIDQ4IC96ZXJvIC9vbmUgL3R3byA1MgovZm91ciAvZml2ZSAvc2l4IDU2IC9laWdodCAxMDEgL2UgL2YgMTA0IC9oIC9pIDExMCAvbiAvbyAxMTUgL3MgL3QgL3UgMTE5Ci93IC94IF0KL1R5cGUgL0VuY29kaW5nID4+Ci9GaXJzdENoYXIgMCAvRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250RGVzY3JpcHRvciAxMyAwIFIKL0ZvbnRNYXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2FucwovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxMiAwIFIgPj4KZW5kb2JqCjEzIDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMTUgMCBvYmoKPDwgL2UgMTYgMCBSIC9laWdodCAxNyAwIFIgL2YgMTggMCBSIC9maXZlIDE5IDAgUiAvZm91ciAyMCAwIFIgL2ggMjEgMCBSCi9pIDIyIDAgUiAvbiAyNCAwIFIgL28gMjUgMCBSIC9vbmUgMjYgMCBSIC9wYXJlbmxlZnQgMjcgMCBSCi9wYXJlbnJpZ2h0IDI4IDAgUiAvcGVyaW9kIDI5IDAgUiAvcyAzMCAwIFIgL3NpeCAzMSAwIFIgL3NwYWNlIDMyIDAgUgovdCAzMyAwIFIgL3R3byAzNCAwIFIgL3UgMzUgMCBSIC93IDM2IDAgUiAveCAzNyAwIFIgL3plcm8gMzggMCBSID4+CmVuZG9iagozIDAgb2JqCjw8IC9GMSAxNCAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAxIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EzIDw8IC9DQSAwLjggL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMC44ID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9EZWphVnVTYW5zLW1pbnVzIDIzIDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKMzkgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDIwMDMwNzIxNTMyNiswMicwMCcpCi9DcmVhdG9yIChtYXRwbG90bGliIDMuMS4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAobWF0cGxvdGxpYiBwZGYgYmFja2VuZCAzLjEuMykgPj4KZW5kb2JqCnhyZWYKMCA0MAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAxMDUwMCAwMDAwMCBuIAowMDAwMDEwMjM4IDAwMDAwIG4gCjAwMDAwMTAyNzAgMDAwMDAgbiAKMDAwMDAxMDQxMiAwMDAwMCBuIAowMDAwMDEwNDMzIDAwMDAwIG4gCjAwMDAwMTA0NTQgMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzk4IDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMjcyNyAwMDAwMCBuIAowMDAwMDA4ODk4IDAwMDAwIG4gCjAwMDAwMDg2OTggMDAwMDAgbiAKMDAwMDAwODI1NiAwMDAwMCBuIAowMDAwMDA5OTUxIDAwMDAwIG4gCjAwMDAwMDI3NDggMDAwMDAgbiAKMDAwMDAwMzA2NiAwMDAwMCBuIAowMDAwMDAzNTMxIDAwMDAwIG4gCjAwMDAwMDM3MzcgMDAwMDAgbiAKMDAwMDAwNDA1NyAwMDAwMCBuIAowMDAwMDA0MjE5IDAwMDAwIG4gCjAwMDAwMDQ0NTUgMDAwMDAgbiAKMDAwMDAwNDU5NSAwMDAwMCBuIAowMDAwMDA0NzY1IDAwMDAwIG4gCjAwMDAwMDQ5OTkgMDAwMDAgbiAKMDAwMDAwNTI4NiAwMDAwMCBuIAowMDAwMDA1NDM4IDAwMDAwIG4gCjAwMDAwMDU2NTggMDAwMDAgbiAKMDAwMDAwNTg4MCAwMDAwMCBuIAowMDAwMDA2MDAxIDAwMDAwIG4gCjAwMDAwMDY0MDYgMDAwMDAgbiAKMDAwMDAwNjc5NiAwMDAwMCBuIAowMDAwMDA2ODg1IDAwMDAwIG4gCjAwMDAwMDcwODkgMDAwMDAgbiAKMDAwMDAwNzQxMCAwMDAwMCBuIAowMDAwMDA3NjU0IDAwMDAwIG4gCjAwMDAwMDc4MTQgMDAwMDAgbiAKMDAwMDAwNzk3MyAwMDAwMCBuIAowMDAwMDEwNTYwIDAwMDAwIG4gCnRyYWlsZXIKPDwgL0luZm8gMzkgMCBSIC9Sb290IDEgMCBSIC9TaXplIDQwID4+CnN0YXJ0eHJlZgoxMDcxNAolJUVPRgo=\n", "image/svg+xml": [ "\r\n", "\r\n", "\r\n", "\r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", "\r\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(9, 5))\n", "xx = np.linspace(0, 1.2, num=100)\n", "yy = test_function(xx)\n", "ax.plot(xx, yy, color=colors[1], label=\"f(x) (without noise)\")\n", "plt.legend(loc=2);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The target function has four local minima with two being close in value.\n", "We will now see how the optimizer will deal with this problem." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using the optimizer\n", "### Specify parameters, kernel and priors\n", "Since we have a 1D target function, we only need to specify one parameter.\n", "Bask expects the parameters to be given as a list:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "parameters = [(0., 1.2)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we need to specify the kernel of the Gaussian process.\n", "There are many kernels we can choose from, but a good default choice is the Matérn kernel:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from skopt.learning.gaussian_process.kernels import Matern\n", "from scipy.stats import invgamma, halfnorm\n", "kernel = 1.0 ** 2 + Matern(length_scale=1., length_scale_bounds=(0.1, 2.))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `1.0 ** 2` implicitly defines a `ConstantKernel` for the signal variance, which defines how much the actual target function varies.\n", "The given bounds restrict the length scale which the initial maximum marginal likelihood estimate can produce.\n", "\n", "Since we are in the fully Bayesian setting, we also have to provide priors for the kernel parameters.\n", "Half-normal distributions are a good default choice for the signal variance and signal noise.\n", "For the length scale of the Matérn kernel we go with a slightly informative inverse-gamma distribution.\n", "It constrains the length scale to be in a plausible range of values, while avoiding the non-identifiability issues one typically encounters when fitting Gaussian processes." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "priors = [\n", " # Prior distribution for the signal variance:\n", " lambda x: halfnorm(scale=2.).logpdf(np.sqrt(np.exp(x))) + x / 2.0 - np.log(2.0),\n", " # Prior distribution for the length scale:\n", " lambda x: invgamma(a=8.29, scale=2.46).logpdf(np.exp(x)) + x,\n", " # Prior distribution for the noise:\n", " lambda x: halfnorm(scale=0.5).logpdf(np.sqrt(np.exp(x))) + x / 2.0 - np.log(2.0)\n", "]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What is left is to define the actual optimizer:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "n_initial_points = 2\n", "opt = Optimizer(\n", " parameters,\n", " n_points=50,\n", " n_initial_points=n_initial_points,\n", " gp_kernel=kernel,\n", " gp_kwargs=dict(normalize_y=False),\n", " gp_priors=priors,\n", " acq_func=\"pvrs\",\n", " acq_func_kwargs=dict(n_thompson=3),\n", " random_state=rand.randint(0, np.iinfo(np.int32).max)\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is usually good practice to seed the optimization with a set of initial points. Here we choose 2 (quasi)-random points.\n", "We use \"predictive variance reduction search\" as the acquisition function here.\n", "It is a very robust acquisition function which quickly converges to the global optimum.\n", "\n", "Other available acquisition functions are:\n", "\n", "* \"ei\": Expected improvement\n", "* \"ttei\": Top-two expected improvement\n", "* \"lcb\": Lower confidence bound\n", "* \"mean\": Lowest GP mean\n", "* \"mes\": Max-value entropy search\n", "* \"ts\": Thompson sampling\n", "* \"vr\": Global variance reduction\n", "\n", "\"pvrs\", \"mes\" and \"ts\" are recommended, if your goal is to minimize the cumulative regret/simple regret (to quickly find the optimum).\n", "If your goal is to fit the target function as accurately as possible (active learning), then use the \"vr\" criterion.\n", "\n", "To reduce the running time of the optimization, we set `n_points=50` and `n_thompson=3`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run the optimizer\n", "We will now run the optimizer for 32 iterations (2 initial points + 30 using the acquisition function).\n", "In order to be able to plot the iterations, we also record the intermediate model predictions.\n", "Note, that this cell needs a few minutes to run (depending on the parameters you set earlier)." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wall time: 2min 20s\n" ] } ], "source": [ "%%time\n", "n_iterations = 30 + n_initial_points\n", "n_grid = 200\n", "xx = np.linspace(0, 1.2, num=n_grid)\n", "predictions = np.empty((n_iterations - n_initial_points, n_grid, 2))\n", "for i in range(n_iterations):\n", " x = opt.ask()\n", " y = test_function(x[0]) + rand.randn() * noise\n", " opt.tell(x, y, n_samples=0, gp_samples=200, gp_burnin=5)\n", " if i >= n_initial_points:\n", " with opt.gp.noise_set_to_zero():\n", " predictions[i-n_initial_points] = np.array(opt.gp.predict(opt.space.transform(xx[:, None].tolist()), return_std=True)).T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot the iterations" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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YXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTcgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjAgMCBvYmoKPDwgL0cgMjEgMCBSIC9JIDIyIDAgUiAvTSAyMyAwIFIgL08gMjQgMCBSIC9QIDI1IDAgUiAvUyAyNiAwIFIgL1QgMjcgMCBSCi9hIDI4IDAgUiAvYiAyOSAwIFIgL2MgMzAgMCBSIC9kIDMxIDAgUiAvZSAzMiAwIFIgL2VpZ2h0IDMzIDAgUiAvZiAzNCAwIFIKL2ZpdmUgMzUgMCBSIC9mb3VyIDM2IDAgUiAvaSAzNyAwIFIgL24gMzkgMCBSIC9vIDQwIDAgUiAvb25lIDQxIDAgUgovcGVyY2VudCA0MiAwIFIgL3BlcmlvZCA0MyAwIFIgL3IgNDQgMCBSIC9zIDQ1IDAgUiAvc2l4IDQ2IDAgUgovc3BhY2UgNDcgMCBSIC90IDQ4IDAgUiAvdGhyZWUgNDkgMCBSIC90d28gNTAgMCBSIC91IDUxIDAgUiAvdiA1MiAwIFIKL3plcm8gNTMgMCBSID4+CmVuZG9iagozIDAgb2JqCjw8IC9GMSAxOSAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAwLjMgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMC4zID4+Ci9BMyA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BNCA8PCAvQ0EgMC44IC9UeXBlIC9FeHRHU3Rh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CjAwMDAwNDA1MjQgMDAwMDAgbiAKMDAwMDA0MDU0NSAwMDAwMCBuIAowMDAwMDQwNTY2IDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDM5OSAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMjk0NTMgMDAwMDAgbiAKMDAwMDA0MDY2NyAwMDAwMCBuIAowMDAwMDQwOTI5IDAwMDAwIG4gCjAwMDAwNDExOTEgMDAwMDAgbiAKMDAwMDA0MTQ1MyAwMDAwMCBuIAowMDAwMDQxNzE1IDAwMDAwIG4gCjAwMDAwMzg4NzQgMDAwMDAgbiAKMDAwMDAzODY3NCAwMDAwMCBuIAowMDAwMDM4MjAyIDAwMDAwIG4gCjAwMDAwMzk5MjcgMDAwMDAgbiAKMDAwMDAyOTQ3NSAwMDAwMCBuIAowMDAwMDI5NzkyIDAwMDAwIG4gCjAwMDAwMjk5MTMgMDAwMDAgbiAKMDAwMDAzMDA3MiAwMDAwMCBuIAowMDAwMDMwMzU3IDAwMDAwIG4gCjAwMDAwMzA1OTUgMDAwMDAgbiAKMDAwMDAzMTAwNiAwMDAwMCBuIAowMDAwMDMxMTQyIDAwMDAwIG4gCjAwMDAwMzE1MTkgMDAwMDAgbiAKMDAwMDAzMTgyOSAwMDAwMCBuIAowMDAwMDMyMTMyIDAwMDAwIG4gCjAwMDAwMzI0MzIgMDAwMDAgbiAKMDAwMDAzMjc1MCAwMDAwMCBuIAowMDAwMDMzMjE1IDAwMDAwIG4gCjAwMDAwMzM0MjEgMDAwMDAgbiAKMDAwMDAzMzc0MSAwMDAwMCBuIAowMDAwMDMzOTAzIDAwMDAwIG4gCjAwMDAwMzQwNDMgMDAwMDAgbiAKMDAwMDAzNDIxMyAwMDAwMCBuIAowMDAwMDM0NDQ3IDAwMDAwIG4gCjAwMDAwMzQ3MzQgMDAwMDAgbiAKMDAwMDAzNDg4NiAwMDAwMCBuIAowMDAwMDM1MzYwIDAwMDAwIG4gCjAwMDAwMzU0ODEgMDAwMDAgbiAKMDAwMDAzNTcxMSAwMDAwMCBuIAowMDAwMDM2MTE2IDAwMDAwIG4gCjAwMDAwMzY1MDYgMDAwMDAgbiAKMDAwMDAzNjU5NSAwMDAwMCBuIAowMDAwMDM2Nzk5IDAwMDAwIG4gCjAwMDAwMzcyMTAgMDAwMDAgbiAKMDAwMDAzNzUzMSAwMDAwMCBuIAowMDAwMDM3Nzc1IDAwMDAwIG4gCjAwMDAwMzc5MTkgMDAwMDAgbiAKMDAwMDA0MjAzNyAwMDAwMCBuIAp0cmFpbGVyCjw8IC9JbmZvIDU0IDAgUiAvUm9vdCAxIDAgUiAvU2l6ZSA1NSA+PgpzdGFydHhyZWYKNDIxOTEKJSVFT0YK\n", "image/svg+xml": [ "\r\n", "\r\n", "\r\n", "\r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", "\r\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, axes = plt.subplots(ncols=1, nrows=5, figsize=(9, 10), sharex=True, sharey=True)\n", "it_to_plot = [0, 9, 12, 19, 29]\n", "for j, i in enumerate(it_to_plot):\n", " mu, se = predictions[i, :, 0], predictions[i, :, 1]\n", " axes[j].plot(xx, mu, color=colors[6], zorder=2, label=\"GP Mean\")\n", " axes[j].fill_between(xx, mu - 1.6 * se, mu + 1.6 * se, alpha=0.3, color=colors[6], zorder=0, label=\"84% Standard error\")\n", " axes[j].plot(opt.Xi[:i+1 + n_initial_points], opt.yi[:i+1 + n_initial_points], \"o\", color=colors[1], zorder=5, label=\"Observations\")\n", " axes[j].plot(xx, test_function(xx), \"--\", zorder=1, color=colors[1], label=\"True function\")\n", " axes[j].set_ylabel(f\"Iteration {i+n_initial_points+1}\")\n", "plt.tight_layout()\n", "plt.legend(loc=\"upper center\", bbox_to_anchor=(0.5, -0.1), fancybox=True, ncol=4);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Usually, we are interested in extracting the global optimum of the (mean) Gaussian process.\n", "This we can easily do as follows:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Best point found so far: x=0.9554, y=-1.4734\n" ] } ], "source": [ "from skopt.utils import expected_minimum, create_result\n", "result_object = create_result(opt.Xi, opt.yi, space=opt.space, models=[opt.gp])\n", "opt_x, opt_y = expected_minimum(result_object)\n", "print(f\"Best point found so far: x={np.around(opt_x[0], 4)}, y={np.around(opt_y, 4)}\")" ] } ], "metadata": { "kernelspec": { "display_name": "Coffee", "language": "python", "name": "coffee" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.2" } }, "nbformat": 4, "nbformat_minor": 4 }